gpt4 book ai didi

unity-game-engine - 从另一个游戏对象的脚本设置变换

转载 作者:行者123 更新时间:2023-12-02 18:42:55 27 4
gpt4 key购买 nike

我正在尝试编写一个脚本来在实例化时设置一个对象。问题是,我不清楚该怎么做。我有这个功能..

function spawnPlayer()
{
var CameraScript = GameObject.Find(PlayerPrefab.name).GetComponent("Camera Control");
Network.Instantiate(PlayerPrefab, spawnObject.position, Quaternion.identity, 0);
}

其中 PlayerPrefab 将是要实例化的预制件。发生这种情况时,我需要在另一个游戏对象(相机)上设置实例化的游戏对象,该游戏对象有一个名为“相机控制”的脚本,里面有一个我试图设置的变换目标。如何做到这一点?

最佳答案

您发布的代码不正确。您正在使用 PlayerPrefab 的名称来查找附加到相机的相机控制脚本吗?按照这个逻辑,当你在第二行实例化 PlayerPrefab 时,你将拥有第二个摄像头。

我认为您想要做的是:实例化播放器预制件并使相机指向播放器

所以我假设 CameraControl 脚本已创建。在我们开始编码之前,您需要以下内容。

  1. CameraControl 脚本附加到场景中的相机。

    enter image description here

  2. 确保 Player 脚本已附加到 Player Prefab。

    enter image description here

  3. 第三个脚本将实例化 PlayerPrefab。我将其称为实例化器。将其附加到场景中的空 GameObject,将其视为世界 GameObject。我们将其称为世界。

  4. 确保 Instantiator 脚本已附加到 World GameObject 并且它指向 PlayerPrefab。

    enter image description here

<小时/>

代码:实例化器

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);
}

注意,我使用了场景中的 MainCamera 由 Unity 为您标记的事实,因此很容易找到。

<小时/>

代码:CameraControl

CameraControl 将具有按照您认为合适的方式跟随播放器的逻辑。请注意,目标将指向相机将聚焦的区域。当然,跟随你周围的玩家必须写。

var target : Transform;

function setTarget(t : Transform)
{
target = t;
}
<小时/>

我刚刚自学了一些 JavaScript。我以前从未使用过它。

关于unity-game-engine - 从另一个游戏对象的脚本设置变换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23975418/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com