お世話になっています。今UNETを用いてオンラインゲームを作っているのですが攻撃の処理の同期がなされておりません。
ゲームの中ではUIのボタンを押して攻撃をしているのですがボタンを押して弾をSpawnし、前に飛ばすのは以下の
コードの書き方であっておりますでしょうか。
UIのボタンのOnClick()にインスペクタからBullet()を登録しております。
以前、Command処理をしているものはOnClick()で呼び出せないと聞いたのでこのようにいたしました。
ご教授いただけると幸いです。よろしくお願いいたします。
12/28追記いたしました。以下のコードのSpawn処理を追記致しました。
using UnityEngine; using UnityEngine.Networking; using UnityEngine.UI; public class NetAttack : NetworkBehaviour { public GameObject netbullet; [ClientCallback] public void Bulet(){ CmdBullet(); } [Command] public void CmdBullet() { if (!isLocalPlayer) { return; } ////ここに弾のSpawn処理と前に飛ばす処理を書く GameObject obj = Instantiate<GameObject>( netbullet, this.transform.position, this.transform.rotation ); obj.transform.position = transform.GetChild(19).gameObject.transform.position; obj.GetComponent<Rigidbody>().velocity = transform.forward * bulletspeed; NetworkServer.Spawn(obj); Destroy(obj, 4); }
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/12/27 07:01
2018/12/27 07:09
2018/12/27 14:43
2018/12/28 00:31
2018/12/28 00:41
2018/12/28 12:38