public void OnPlaying() { if (playingCharacter) { characterLoaded = true; if (UnitZ.playerSave) { if (Time.time >= timeTemp + SaveInterval) { timeTemp = Time.time; if (SavePlayer) UnitZ.playerSave.SavePlayer (playingCharacter); } } } else { findPlayerCharacter (); } if (Spectre != null) { if (playingCharacter == null) { Spectre.Active (true); } else { Spectre.Active (false); Spectre.LookingAt (playingCharacter.gameObject.transform.position); playingCharacter.spectreThis = true; } } else { Spectre = (SpectreCamera)GameObject.FindObjectOfType (typeof(SpectreCamera)); } }
void LookAfterDead(GameObject obj) { //玩家死亡后,摄像机看向尸体 SpectreCamera spectre = (SpectreCamera)GameObject.FindObjectOfType(typeof(SpectreCamera)); if (spectre) { spectre.LookingAtObject(obj); } }
public override void OnDeadBodySpawned(GameObject deadbody) { //tell the spectre cam to look at this corpse SpectreCamera spectre = (SpectreCamera)GameObject.FindObjectOfType(typeof(SpectreCamera)); if (spectre && SpectreOnDead && IsMine) { spectre.LookingAtObject(deadbody); } base.OnDeadBodySpawned(deadbody); }
//游戏中 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 + ")"); } } }