0
このコードはプレーヤーにあり、メニュー内のボタンを押すと反応し、最初はオレンジ色になったときにボタン「btn_MenuKill」を押し、次回に色を元に戻すときSyncVarフック "void ProcessKillObject(bool _MP_Orange){"で、元の黄色にして "print"( "FIRE THE PROCESS")を実行します。エディタでコマンドがクライアントからトリガーされない
スタートホスト
1)ホスト・クライアント(エディタ上のボタンをクリックします)= [コマンド]
2作品)上のボタンをクリックしてください:ここで
は、状況/問題であり、リモートクライアント=機能しません。[コマンド]生成された "リモート"クライアントでホストを起動します。
1)ホスト・クライアント上のボタンをクリックして= [コマンド]は、リモート・クライアント上のボタンをクリックしてください)
2作品= [コマンド] [コマンド]ときに動作しない理由を私は理解していない
作品ホストはエディタ上にあり、私はリモートのボタンを使用します。ここで
はコードです:
[SyncVar(hook = "ProcessKillObject")] public bool MP_KillOrange = false;
[SyncVar(hook = "MoveMainMenu")] public bool MP_MainMenu;
private NetworkIdentity objNetId;
private Color32 yellowButtonColor = new Color32 (200, 200, 2, 255);
private Color32 orangeButtonColor = new Color32 (255, 96, 0, 255);
public void Btn_Kill() {
if (!isLocalPlayer)
return;
foreach (string objectTag in MP_Singleton.Instance.master_Object_List) {
GameObject dummy = GameObject.Find (objectTag);
Cmd_LocalAuthority (true, dummy);
}
Cmd_ProcessKill();
}
// SyncVar Hook
void ProcessKillObject(bool _MP_Orange) {
if (_MP_Orange) {
GameObject.Find ("btn_MenuKill").GetComponent<Button>().image.color = orangeButtonColor;
} else if (!_MP_Orange) {
GameObject.Find ("btn_MenuKill").GetComponent<Button>().image.color = yellowButtonColor;
print ("FIRE THE PROCESS");
}
}
[Command] //>>>>>> THIS IS NOT TRIGGERED
void Cmd_ProcessKill() {
// >>>>>>>>>>>>>>>>>>>>>>
GameObject.Find ("MyText").GetComponent<Text>().text = "HIT"; // TO SEE THAT THE COMMAD TRIGGER
//>>>>>>>>>>>>>>>>>>>>>>>
if (MP_KillOrange)
MP_MainMenu = !MP_MainMenu;
MP_KillOrange = !MP_KillOrange;
}
[Command]
void Cmd_LocalAuthority(bool getAuthority, GameObject obj) {
objNetId = obj.GetComponent<NetworkIdentity>(); // get the object's network ID
if (getAuthority) {
objNetId.AssignClientAuthority (connectionToClient); // assign authority to the player
} else {
objNetId.RemoveClientAuthority (connectionToClient); // remove the authority from the player
}
}
「Cmd_LocalAuthority(true、dummy);」を削除すると、それは動作しますが、私が移動するノンプレイヤーオブジェクトは、移動する場所にとどまっていません。 – PeterK
解決済み、私はRPCを使用し、それは働いた。 – PeterK