Beispiel #1
0
    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));
        }
    }
Beispiel #2
0
    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);
    }
Beispiel #4
0
    //游戏中
    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 + ")");
            }
        }
    }
Beispiel #5
0
    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 + ")");
            }
        }
    }