Unity3D更改Main Camera游戏对象以适应多人游戏
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Unity3D更改Main Camera游戏对象以适应多人游戏相关的知识,希望对你有一定的参考价值。
我有一个游戏,您可以使用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);
}
}
}
现在,我使用局域网制作了这款游戏多人游戏。所以你可以让更多的玩家同时控制多个球。但是,每次玩家加入局域网服务器时,都会使用网络管理器从预制件创建一个新球。问题在于,你可以在脚本中看到,在单人游戏版本中我必须将游戏对象'播放器'连接到相机,但是当你在局域网服务器中运行这个游戏时,没有玩家游戏对象,网络管理员仅在玩家加入游戏后创建一个。所以我的问题是,如何将相机连接到每个加入游戏的玩家?另外,我相信每个玩家都必须拥有自己的相机,因为他可以从另一个玩家那里悄悄地移动,我是对的吗?
谢谢您的帮助!
答案
首先,问题有点广泛,因为您没有提供有关您正在使用的网络的信息。您使用的是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];
}
希望这可以帮助。
并记住下次尝试提供尽可能多的信息。
以上是关于Unity3D更改Main Camera游戏对象以适应多人游戏的主要内容,如果未能解决你的问题,请参考以下文章
Unity3D杂烩:位置修改,子对象获取,组件获取,通过脚本文件获取被绑定对象