如何从另一个对象中的脚本激活对象上的脚本?

时间:2019-02-28 15:38:05

标签: c# unity3d

我正在制作赛车游戏,并且在倒数计时开始之前,一直无法启用控件。倒计时脚本的结尾是:

CountDownNumber.SetActive(false);
CountDownNumber.GetComponent<Text>().text = "GO!";
countdownAudio.Play(); //Change to Go Audio
CountDownNumber.SetActive(true);

当运行这部分时,我希望启用car对象中的脚本。我尝试过的方法是使用以下行:

usercontrol.GetComponent(CarController).enabled = true;

usercontrol.GetComponent<CarController>().enabled = true;

由于错误消息均不成功:

  

Assets / CountDown.cs(41,34):错误CS0103:名称“ CarController”在当前上下文中不存在

但这是我要启用的GameObject中脚本的名称。

关于如何解决此问题的任何想法?

如果有帮助,则该汽车来自标准资产,因此我要在旅途中启用的汽车控制器脚本。

1 个答案:

答案 0 :(得分:0)

您遗漏了using语句

using UnityStandardAssets.Vehicles.Car;

要确保不要使用第二个

usercontrol.GetComponent<CarController>().enabled = true;

第一个将需要字符串而不是

usercontrol.GetComponent("CarController").enabled = true;

typeof的用法类似

usercontrol.GetComponent(typeof(CarController)).enabled = true;

检查GetComponent API