状態の複製
値の複製とは、他のマシン上における接続またはネットワーク上での値の複製を意味します。Boltでは、状態 を定義することで、ネットワーク上での送信されるべき重要な値を簡単に定義できます。
BoltEntity の 状態 の編集は オーナー のみ が行うことができます。オーナー以外の場所から情報の変更を行うと、ネットワーク上で値が複製されません。
Mecanim/状態の相互作用/状態プロパティの編集
状態が付与されたとき、忘れずにAnimatorまたはTransformをリンクしてください。例:(Bolt.EntityBehaviour<YourStateNameHere>
から継承するスクリプト内で)
public override void Attached ()
{
state.transform.SetTransforms(transform);
state.SetAnimator(GetComponentInChildren<Animator>()); //Or wherever your animator is
}
その後、状態プロパティが全てエディタ内で正しく設定されている場合、リンクされたプロパティを変更してください。Animatorが複製します。 エディタ内の、状態でのMecanimプロパティの例:
プロパティの変更を行います(Mecanimに特有のものではなく、あらゆるプロパティの変更に用いることができます)。Bolt.EntityBehaviour<YourStateNamehere>
から継承しているスクリプト内で行って下さい。
state.RunningSpeed = currentSpeed;
コントローラーがコード(例:if(BoltNetwork.isOwner)
loopに含まれるもの)を稼働している唯一のものである限り、Boltはその値をネットワーク上で複製します。また、状態プロパティが上記のように設定されていれば、Boltはそれをアニメーターに自動で渡します。
コントローラーへの複製
デフォルトでは、Boltはコントローラー ではない 全てのクライアントに対し値を複製します。コントローラーへの値の複製 を有効にするには、Bolt Editor で状態プロパティ内のJoystickアイコンを有効にする必要があります(Bolt 0.4以降)。
管理者への複製を使用する必要性
以下の場合には、使用する必要がありません。
- コントローラーに完全な管理権を与えたいプロパティである場合
resetState==true
であるExecuteCommand()
内のサーバーまたはオーナーから結果的に受信する状態によってアップデートされるプロパティである場合
これに対し、以下の場合には使用する必要があります。
- コントローラーではなく、オーナーまたはサーバーが設定するプロパティである場合、コントローラー側でプロパティの値を受信するためにONにする必要があります