Unity - A计划(永久有效期) 扫二维码继续学习 二维码时效为半小时

(196评价)
价格: 4019.00元
关于getcompont<>();
张同学斯基发起了问答2016-12-16
4
回复
800
浏览

这个方法仅仅是得到组件吗?使用条件限制条件是什么啊?为什么有的不用,组件不工作。有的用了,组件反而不工作了?

所有回复
  • siki 2016-12-16

    仅仅是得到组件,你需要用某个组件的时候再用,  组件工作不工作跟你调用与否是没关系的

    还有-5条回复,点击查看
    你还没有登录,请先登录注册
  • 张同学斯基 2016-12-16
     public AudioSource NormAudioSource;
        public AudioSource PainAudioSource;
    	void Start ()
    	{
    	  /*  NormAudioSource = GetComponent<AudioSource>();
    	    PainAudioSource = GetComponent<AudioSource>();*/
    	}
    	void Update () {
    	    if (Alarm_Light._inantce.AlarmOn)
    	    {
    	        NormAudioSource.volume = Mathf.Lerp(NormAudioSource.volume, 0, Time.deltaTime);
    	        PainAudioSource.volume = Mathf.Lerp(PainAudioSource.volume, 1, Time.deltaTime);
    	    }
    	    else
    	    {
                NormAudioSource.volume = Mathf.Lerp(NormAudioSource.volume, 1, Time.deltaTime);
                PainAudioSource.volume = Mathf.Lerp(PainAudioSource.volume, 0, Time.deltaTime);

    背景音乐的切换,我在start里写了get,不工作。我注销了后,反而工作了。

    1.哪些情况可以不写,哪些必须写呢?

    2.我能不能开始时不写,运行时出现空指针再补?

    还有-5条回复,点击查看
    你还没有登录,请先登录注册
  • CHARMIN 2016-12-16

    你本来就持有(public)一个audiosource, 所以不需要再去get它就可以读取,如果你是持有一个gameobject或其他的才需要通过get component获取到这个组件

    • siki 2016-12-17

      1,如果你通过inspector赋值了,就不需要通过代码赋值了
      2,没有通过inspecotr赋值,必须通过代码赋值
      你说的不工作,估计是audiosource不再这个脚本所在的游戏物体上所以得不到正确的audiosource组件

      (0) 回复
    还有-4条回复,点击查看
    你还没有登录,请先登录注册
发表回复
你还没有登录,请先 登录或 注册!