我创建了两个脚本,一个是scrpt_Enemy
,另一个是scrpt_GameManager
。
我想从SubtractLive()
拨打scrpt_GameManager
功能(存在scrpt_Enemy
)。但它给出了错误,我不知道为什么。错误是' SubtractLive'不是UnityEngine.Component'。
scrpt_Enemy:
var gameManager : GameObject;
gameManager.GetComponent("scrpt_GameManager").SubtractLive();
scrpt_GameManager:
var lives : int =3;
function SubtractLive(){
lives -= lives;
}
答案 0 :(得分:1)
你告诉Unity gameManager
属于GameObject类型。因此Unity很吓人,因为它在GameObject下没有SubtractLive()
。
您可以像这样获得正确的参考:
创建变量然后告诉Unity它的类型是什么。
var gameManager : scrpt_GameManager;
找到附有脚本的GameObject。
gameManager = GameObject.Find("GameManagerGameObject").GetComponent("scrpt_GameManager");
请注意,“ GameManagerGameObject ”是场景中GameManager的名称。
现在你已经引用了脚本,只需调用这个函数:
gameManager.SubtractLive();