【Unity】执行逻辑学习

1.如果使用了两个互斥的变量,一定要保证时刻互斥。

  void CamMovement(int index)
    {
        if (toUp && ! follow)//优先判断toUp
        {
          
            if (Vector3.Distance(mainCam.transform.position, cam_ups[index].position) < 0.5f)
            toUp = false;             
                      
        }else  if (toDown && ! follow)//保证这两种情况只执行一种
        {                      
            if (Vector3.Distance(mainCam.transform.position, cam_downs[index].position) < 0.5f)
            toDown = false;         
                          
        }
    }
            case "CamLeftBox":
                offset = mainCam.transform.position - transform.position;//保持镜头和主角距离不变
                follow = true;
                toDown = true;//待跟随结束,镜头就移动到下方定点
                toUp = false;
                break;
            case "CamRigBox":
                offset = mainCam.transform.position - transform.position;
                follow = true;
                toUp = true;
                toDown = false;
                break;

2.遍历的时候可能需要按照正序或者倒序。可以走一遍流程,看看先判断哪一个。

 for (int i = 1; i < sphereListeners.Length; i++)//正序判断
 {
     if (sphereListeners[i].sEnter)
     {
         SphereDisappear(sphereListeners[i - 1].gameObject);
         SphereAppear(sphereListeners[i].gameObject);
     }         
  }
 for (int i = sphereListeners.Length-1; i>0; i--)//倒序判断
 {           
     if (sphereListeners[i].sExit)
     {
         SphereDisappear(sphereListeners[i].gameObject);
         SphereAppear(sphereListeners[i - 1].gameObject.gameObject);
      }
 }

3.这次遇到了一个Bug:在切换场景时对背景音乐进行了淡入淡出的处理,它执行的是一个协程。

每次回到主界面,声音渐出之后又突然变为0,查找了所有改变volume的地方,感觉没有什么问题。

最后终于发现,原来是因为,加载主界面的时候,要初始化音量滑动条的值。初始化时记录的正是当时的音量值(也就是刚加载场景淡出刚结束的时候!),而背景音乐的音量正是实时地受到滑动条的影响。(这写的也太不安全了)

修改:只有当激活“设置界面”时才对音量滑动条进行初始化,背景音乐音量才受到滑动条影响。以后的逻辑也应当这样写。

另外知道,每次重新加载一个场景的时候,初始化方法都会重新执行一次。

4. 如果不是这两个场景之一,就不执行下面的代码。要用&&不要用||

  if (SceneManager.GetActiveScene().name != "Level_1_a" && SceneManager.GetActiveScene().name!="Level_1_b") return;


猜你喜欢

转载自blog.csdn.net/qq_36622009/article/details/79839463