//游戏中 public void OnPlaying() { if (PlayingCharacter) { //玩家生成 if (UnitZ.playerSave && PlayingCharacter.IsAlive) { //玩家存活 if (Time.time >= timeTemp + SaveInterval) { timeTemp = Time.time; if (SavePlayer) { PlayingCharacter.SaveCharacterData(SaveToServer); } } //玩家存活,关闭失败面板 if (UnitZ.Hud.IsPanelOpened("Lose")) { UnitZ.Hud.ClosePanelByName("Lose"); } timeAlivetmp = Time.time; } if (!PlayingCharacter.IsAlive) { //玩家死亡 if (AutoRespawn) { //自动重新生成 respawnTimer = (timeAlivetmp + AutoRespawnDelay) - Time.time; if (Time.time > timeAlivetmp + AutoRespawnDelay) { Respawn(-1); UnitZ.Hud.ClosePanelByName("Lose"); Debug.Log("Chaacter respawned (" + Time.timeSinceLevelLoad + ")"); } } else { if (!UnitZ.Hud.IsPanelOpened("Lose") && !spectreMode) { UnitZ.Hud.OpenPanelByName("Lose"); } } } } else { // 如果玩家仍然不存在,则寻找玩家 findPlayerCharacter(); if (PlayingCharacter == null) { //Debug.LogWarning ("Can't find player (CharacterSystem) object in the scene. this is may drain game performance (" + Time.timeSinceLevelLoad + ")"); } } //玩家在游戏,且玩家已经死亡 if (Spectre != null && PlayingCharacter) { //玩家已死亡 if (!PlayingCharacter.IsAlive) { Spectre.Active(true); } else { Spectre.Active(false); Spectre.LookingAt(PlayingCharacter.gameObject.transform.position); PlayingCharacter.spectreThis = true; } } else { Spectre = (SpectreCamera)GameObject.FindObjectOfType(typeof(SpectreCamera)); if (Spectre == null) { //Debug.LogWarning ("Can't find (SpectreCamera) object in the scene. this is may drain game performance (" + Time.timeSinceLevelLoad + ")"); } } }
public void OnPlaying() { if (PlayingCharacter) { // player spawned if (UnitZ.playerSave && PlayingCharacter.IsAlive) { // player alive if (Time.time >= timeTemp + SaveInterval) { timeTemp = Time.time; if (SavePlayer) { PlayingCharacter.SaveCharacterData(SaveToServer); } } // if close Lose GUI if player alive if (UnitZ.Hud.IsPanelOpened("Lose")) { UnitZ.Hud.ClosePanelByName("Lose"); } timeAlivetmp = Time.time; } if (!PlayingCharacter.IsAlive) { // player is dying if (AutoRespawn) { // auto matic respawned respawnTimer = (timeAlivetmp + AutoRespawnDelay) - Time.time; if (Time.time > timeAlivetmp + AutoRespawnDelay) { Respawn(-1); UnitZ.Hud.ClosePanelByName("Lose"); Debug.Log("Chaacter respawned (" + Time.timeSinceLevelLoad + ")"); } } else { if (!UnitZ.Hud.IsPanelOpened("Lose") && !spectreMode) { if (ShowDeadUI) { UnitZ.Hud.OpenPanelByName("Lose"); } } } } } else { // if player still not exist, keep looking for a player findPlayerCharacter(); if (PlayingCharacter == null) { //Debug.LogWarning ("Can't find player (CharacterSystem) object in the scene. this is may drain game performance (" + Time.timeSinceLevelLoad + ")"); } } if (Spectre != null && PlayingCharacter) { // spectre dead player if (!PlayingCharacter.IsAlive) { // if player dead spectre mode enabled Spectre.Active(true); } else { Spectre.Active(false); Spectre.LookingAt(PlayingCharacter.gameObject.transform.position); PlayingCharacter.spectreThis = true; } } else { Spectre = (SpectreCamera)GameObject.FindObjectOfType(typeof(SpectreCamera)); if (Spectre == null) { //Debug.LogWarning ("Can't find (SpectreCamera) object in the scene. this is may drain game performance (" + Time.timeSinceLevelLoad + ")"); } } }