Unity3D改变主镜头游戏对象,以适应多人游戏

本文关键字:游戏 对象 改变 Unity3D | 更新日期: 2023-09-27 18:14:58

我有一个游戏,你控制一个球使用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);
}
}       

}

现在,我用局域网制作了这个多人游戏。所以你可以让更多的球员同时控制多个球。然而,每次玩家加入局域网服务器时,使用网络管理器从预制件中创建一个新球。问题是,正如你在脚本中看到的,在单人游戏版本中,我必须将游戏对象"玩家"连接到摄像机,但是当你在局域网服务器上运行这个游戏时,没有玩家游戏对象,网络管理员只有在玩家加入游戏后才会创建一个。我的问题是,如何将摄像头连接到每个加入游戏的玩家?此外,我认为每个玩家都必须拥有自己的摄像机,因为他可以与其他玩家移动不同,对吗?

谢谢你的帮助!

Unity3D改变主镜头游戏对象,以适应多人游戏

首先,这个问题有点宽泛,因为你没有给出你正在使用的网络的信息。你用的是双关语、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];
}

希望对你有帮助。