C# 摄影机跟随实例化光子多人游戏机
我将此脚本连接到我的相机:C# 摄影机跟随实例化光子多人游戏机,c#,unity3d,photon,C#,Unity3d,Photon,我将此脚本连接到我的相机: public class CameraFollow : MonoBehaviour { public Transform target; public float smoothSpeed = 0.125f; public Vector3 offset; private void Start() { target = ? } private void LateUpdate()
public class CameraFollow : MonoBehaviour {
public Transform target;
public float smoothSpeed = 0.125f;
public Vector3 offset;
private void Start()
{
target = ?
}
private void LateUpdate()
{
transform.position = target.position + offset;
}
}
因为我的播放器是实例化的,所以我不能将预置拖动到公共目标。
我可以在Start函数中键入什么,然后将目标设置为我的实例化播放器。它的标签是“阿凡达”
我使用的是PhotonNetwork,所以我将在一个房间里有几个播放器。一种方法是将
Start()
修改为:
private void Start()
{
GameObject[] players = GameObject.FindAllGameObjectsWithTag("Avatar");
foreach (GameObject player in players)
{
if (PhotonView.Get(player).isMine)
{
this.target = player.transform;
break;
}
}
}
假设您的玩家类继承自Photon.monobhavior
(如果尚未继承的话)
PhotonView.Get(player).isMine检查网络对象是否为您的客户端所有,因此可以区分您的播放器和其他人的播放器。一旦找到了对自己播放器的引用,就可以将其指定为相机的目标。这将取决于要让相机跟随的播放器。如果是你的玩家而不是其他人的角色,那么将目标设定为你的角色应该很容易。不要在start函数中调用目标,而是等待角色生成。当你的角色产生时,会有一些回调。生成后,可以指定摄影机目标并启动摄影机移动功能。我以前没有使用过光子,但很久以前使用ulink进行了一些联网。我们等待角色生成,并在角色生成后将相机分配给玩家。也用同样的原理制作了观众模式。获取所需的玩家id,获取其游戏对象,并将相机分配给该游戏对象。这样想,相机不一定要跟随任何物体,但也可以保持静止,或者在需要时可以随机分配给场景中的任何物体。我相信光子应该有一些ID和相对的游戏对象,即分配给每个玩家的化身。你可以尝试搜索它,它应该会给你的玩家+该列表中其他连接的玩家。如果没有,那么你应该保留一份已连接玩家的列表并处理连接。你可以查看我打电话时看到的这份文档谢谢!我将调查从PhotonNetwork回拨的信息。