Exemplo n.º 1
0
 public override void InteractiveDetection(CharacterInteractiveCpt characterInt)
 {
     if (Input.GetButtonDown(InputInfo.Interactive_E))
     {
         if (mInteractiveObj != null)
         {
             AudioHandler.Instance.PlaySound(AudioSoundEnum.Door);
             SceneMountainManager sceneTownManager = GameScenesHandler.Instance.manager.GetSceneManager <SceneMountainManager>();
             sceneTownManager.GetBuildingDoorPosition(positionChange, out Vector2 outDoorPosition, out Vector2 inDoorPosition);
             //本身是在外 要转换到里
             //int checkOutOrIn = 0;
             if (OutOrIn == 0)
             {
                 //checkOutOrIn = 1;
                 //关闭环境音效
                 AudioHandler.Instance.PauseEnvironment();
                 mInteractiveObj.transform.position = inDoorPosition;
             }
             //本身是在里 要转换到外
             else
             {
                 //checkOutOrIn = 0;
                 //开启环境音效
                 AudioHandler.Instance.RestoreEnvironment();
                 mInteractiveObj.transform.position = outDoorPosition;
             }
             //检测故事
             //eventHandler.EventTriggerForStory(positionChange, checkOutOrIn);
         }
     }
 }
Exemplo n.º 2
0
    public override ControlForMoveCpt InitUserPosition()
    {
        ControlForMoveCpt    moveControl          = base.InitUserPosition();
        SceneMountainManager sceneMountainManager = GameScenesHandler.Instance.manager.GetSceneManager <SceneMountainManager>();

        //位置控制
        switch (GameCommonInfo.ScenesChangeData.beforeScene)
        {
        case ScenesEnum.GameTownScene:
            moveControl.SetPosition(sceneMountainManager.GetExitDoor());
            break;

        case ScenesEnum.GameInfiniteTowersScene:
            Vector3 doorPosition = sceneMountainManager.GetInfiniteTowersStairs();
            moveControl.SetPosition(doorPosition);
            break;
        }
        return(moveControl);
    }