您发布的代码不可能正确。您正在使用 PlayerPrefab 的名称来查找附加到相机的相机控制脚本吗?按照这种逻辑,在您实例化的那一刻PlayerPrefab
,在第二行,您将拥有第二个摄像头。
我认为您想要做的是:实例化播放器预制件并使相机指向播放器。
所以我假设CameraControl
脚本已创建。在我们开始编码之前,您需要以下内容。
将CameraControl
脚本附加到场景中的相机。

确保Player
脚本附加到 Player Prefab。

有第三个脚本将实例化 PlayerPrefab。我会打电话Instantiator
的。将其附加到场景中的空 GameObject 上,将其视为世界 GameObject。我们称之为世界。
确保Instantiator
脚本附加到 World GameObject 并且它指向 PlayerPrefab。

代码:实例化器
该Instantiator
脚本将生成并创建我们将在场景中使用的东西。
#pragma strict
var PlayerPrefab : GameObject;
function Start ()
{
// You can add position and rotation to the function call if you like.
var p = Instantiate(PlayerPrefab) as GameObject;
// Find the camera script and point to Player's transform.
Camera.main.GetComponent("CameraControl").SendMessage("setTarget", p.transform);
}
请注意,我使用了 Unity 为您标记场景中的 MainCamera 的事实,因此很容易找到。
代码:CameraControl
将CameraControl
具有按照您认为合适的方式跟随播放器的逻辑。请注意,目标将指向相机将聚焦的内容。当然,跟随你周围的玩家将不得不写。
var target : Transform;
function setTarget(t : Transform)
{
target = t;
}
我只是自学了一点 JavaScript。我以前从未使用过它。