【发布时间】:2017-11-18 01:08:39
【问题描述】:
我正在制作一个点击式游戏,我需要获取场景中移动游戏对象的更新位置。在单击对象后,我目前正在通过事件将鼠标选择的对象传递给另一个脚本。对象的位置是从单击对象时开始存储的,而不是当前位置,我想以某种方式将其传递到更新循环中以获取更新的位置。
我已经研究过使用成员变量从更新函数中获取更新,但这看起来很混乱。 有没有更好的解决方案或者我应该只使用成员变量?
谢谢!
这是我关心的代码
void Start()
{
RegisterForMouseEvents();
}
private void RegisterForMouseEvents()
{
var cameraRaycaster = FindObjectOfType<CameraRaycaster>();
cameraRaycaster.onMouseOverEnemy += OnMouseOverEnemy;
}
void OnMouseOverEnemy(EnemyAI enemy)
{
// enemy is object passed from delegate
// that has the EnemyAI script attached.
// how do I pass enemy into Update() then either
// back into this method or another method?
}
【问题讨论】:
-
GameObject.Find("name").transform.position会解决您的问题吗? -
感谢您的回复。这将使它起作用,但我试图弄清楚如何从委托传递的引用中使用。我想让它更加动态并且不依赖于特定的对象名称,因为我想稍后添加 NPC 和可能不具有相同名称的东西。
-
“我想弄清楚如何从委托传递的参考中使用”你能更详细地解释一下你的意思吗?
-
发布一些示例代码可能会让你的问题更清楚
-
您可以在他们注册时将
AddList并在Update函数中遍历列表 (foreach( EnemyAI enemy in enemyList){...})