こんにちは、ネットワーク対応にしたい unity で最初のゲームを作成しようとしていますが、ネットワーク プレハブのスポーンに問題が発生しました。これが私のコードです:
using UnityEngine;
using System.Collections;
using UnityEngine.Networking;
public class Builder : NetworkBehaviour {
public GameObject preview;
public Transform currentPreview;
bool isPreviewing = false;
GameObject buildingPreview;
private NetworkIdentity networkId;
// Use this for initialization
void Start ()
{
networkId = GetComponent<NetworkIdentity>();
}
// Update is called once per frame
void ViewPreview()
{
buildingPreview = Instantiate(preview, transform.position, transform.rotation) as GameObject;
currentPreview = buildingPreview.transform;
isPreviewing = true;
}
void Update ()
{
CmdBuild();
}
void CmdBuild()
{
if (networkId.isLocalPlayer)
{
}
else
{ return; }
if (Input.GetKeyDown(KeyCode.E))
{
if (!isPreviewing)
ViewPreview();
else
{
Destroy(buildingPreview);
isPreviewing = false;
}
}
if (isPreviewing)
{
Preview();
}
}
[Command]
void CmdSpawnBuilding()
{
GameObject buildingPlaced = Instantiate(preview, currentPreview.position, currentPreview.rotation) as GameObject;
NetworkServer.Spawn(buildingPlaced);
}
void Preview()
{
currentPreview.position = transform.position + transform.forward * 3f;
currentPreview.rotation = transform.rotation;
if (Input.GetButtonDown("Fire1"))
{
CmdSpawnBuilding();
isPreviewing = false;
}
}
}
コンパイラは問題はないと言っていますが、ユニティでは次のようなエラーが発生しました:「UNetWeaver エラー: Script Builder は [Command] CmdSpawnBuilding を使用していますが、NetworkBehaviour ではありません。UnityEngine.Debug:LogError(Object)」「[Command ]" 回線にもかかわらず、ネットワーク対応ではありません。また、少し混乱していることはわかっていますが、何が問題なのかを理解しようとしていたので、そうです、コードを少し混乱させました。