编辑:除了下面的答案之外,这些链接还帮助解决了这个问题......
https://forum.unity.com/threads/ui-buttons-to-spawn-units-buildings.356813/ https://forum.unity.com/threads/network-spawned-objects-not-showing-up- at-other-clients.501724/
我正在实例化一个对象并将其作为父对象,这是从宇宙飞船上拍摄的,它应该显示在所有播放器屏幕上。这仅在主机开枪时才有效。当客户开枪时,只有该客户可以看到该枪。
对于网络身份,船(父)设置为本地玩家权限。对于镜头,未选择本地或服务器。
这是创建镜头的代码...
public class fire : NetworkBehaviour{
public GameObject shockwave;
public GameObject ship;
private GameObject eb;
private GameObject go;
private int energy = 4;
private float targetTime = 10.0f;
public override void OnStartLocalPlayer()
{
base.OnStartLocalPlayer();
gameObject.name = "Local";
}
public void createshockwave()
{
ship = GameObject.Find("Local");
Debug.Log(ship);
if (!ship.GetComponent<NetworkIdentity>().isLocalPlayer)
{
return;
}
go = Instantiate(shockwave, ship.transform.position, ship.transform.rotation);
go.transform.parent = ship.transform;
NetworkServer.Spawn(go);
}
}
关于什么可能导致对象在由主机而不是客户端拍摄时显示在其他屏幕上的任何线索?