![](/img/trans.png)
[英]Unity Accessing PlayOneShot from different script throws object reference error
[英]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.