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); } } }
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); }