繁体   English   中英

Unity获取在其他脚本中创建的对象的引用

[英]Unity get a reference of an Object created in a different script

我的播放器对象有4点孩子的对象,通过4名为典当1当我点击其中的一个,它成为选择 选择Pawn时,它应该发光。 现在,麻烦在于,为了正确进行发光,每个Pawn必须知道当前是否选择了它。 我通过附加一个

public class PlayerController : MonoBehaviour {
    public GameObject selectedObject;
}

到Player对象,以及到每个Pawn对象的脚本,其中包括执行此操作的脚本

void Update()
{
    if (transform.parent.gameObject.GetComponent<PlayerController>().selectedObject == 
        gameObject)
    {
        Glow();
    }
}

我不禁要想到必须有一种更好的方法,因为在每个更新,每个Pawn上执行GetComponent,对于每个玩家来说都是非常浪费的。

有没有一种方法可以在Start()中获得对selectedObject的引用,因此它可以始终保持更新而无需始终手动获取它?

有没有一种方法可以在Start()中获得对selectedObject的引用,因此它可以不断更新,而无需始终手动获取它?

在开始功能中缓存PlayerController

private PlayerController playerController;

void Start()
{
    playerController = transform.parent.gameObject.GetComponent<PlayerController>();
}

void Update()
{
    if (playerController.selectedObject ==
        gameObject)
    {
        Glow();
    }
}

Pawn为什么不处理单击交互并存储是否选择了单击? 然后,您将获得类似以下内容的信息:

if(IsSelected)
    Glow();

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM