我有一个使用W,A,S和D控制球的游戏。主摄像机使用此脚本跟随玩家(球):
public class CameraMovement : MonoBehaviour {
public GameObject Player;
private Vector3 Set;
void Start()
{
Set = transform.position - Player.transform.position;
}
void LateUpdate()
{
transform.position = new Vector3 (-280f, 15f, 28f);
transform.rotation = Quaternion.Euler (0.0f, 90.0f, 0.0f);
}
}
}
现在,我使用局域网制作了这款游戏多人游戏。所以你可以让更多的玩家同时控制多个球。但是,每次玩家加入局域网服务器时,都会使用网络管理器从预制件创建一个新球。问题在于,你可以在脚本中看到,在单人游戏版本中我必须将游戏对象'播放器'连接到相机,但是当你在局域网服务器中运行这个游戏时,没有玩家游戏对象,网络管理员仅在玩家加入游戏后创建一个。所以我的问题是,如何将相机连接到每个加入游戏的玩家?另外,我相信每个玩家都必须拥有自己的相机,因为他可以从另一个玩家那里悄悄地移动,我是对的吗?
感谢您的帮助!
答案 0 :(得分:0)
首先,问题有点广泛,因为您没有提供有关您正在使用的网络的信息。 您使用的是PUN,UNET还是其他的?
我可以广泛地解释如何解决这个问题。
当玩家加入时,你应找到主摄像头并将其分配给他自己的客户。
因为每个客户都有自己的主摄像头,所以它不会成为问题。
//The code will look something like this.
void OnJoinedServer() //When the player joins the server
{
//find the main camera gameobject
GameObject camera = Camera.main.gameObject;
camera.transform.SetParent(player.transform);
//Maybe set the right position as well
camera.transform.localPosition = [SomeVector3];
}
希望这有帮助。
请记住下次尝试提供尽可能多的信息。