示例#1
0
    IEnumerator PlacePlayer()
    {
        //This makes sure Start runs on FPSScript
        yield return(null);

        _fpsScript.Teleport(_spawnPosition);
        ReadyToSpawnWorld = true;

        bool       hit = false;
        RaycastHit collision;

        do
        {
            yield return(null);

            hit = Physics.Raycast(_spawnPosition, Vector3.down, out collision, _distanceRayCast, _layerMask.value);
            Debug.DrawRay(_spawnPosition, Vector3.down * _distanceRayCast, Color.cyan, 1f);
        } while (!hit);

        PlayerSpawned = true;

        Vector3 spawnPosition = collision.point;

        if (collision.point.y < _seaLevelSpawn)
        {
            spawnPosition.y = _seaLevelSpawn;
        }

        _fpsScript.Teleport(spawnPosition);

        OnStartFadeIn.FadeIn();
    }
示例#2
0
    IEnumerator RestartWithFade()
    {
        while (!OnStartFadeIn.Done())
        {
            yield return(null);
        }

        SceneManager.LoadScene(SceneManager.GetActiveScene().buildIndex, LoadSceneMode.Single);
    }
示例#3
0
 public void Restart()
 {
     Music_Manager.Instance.Stop_TriggerMusic();
     if (!Music_Manager.Instance.StartMenu)
     {
         Music_Manager.Instance.Start_StartMenuMusic();
     }
     Destroy(_menu);
     OnStartFadeIn.FadeOut();
     StartCoroutine(RestartWithFade());
 }
示例#4
0
 private void Awake()
 {
     if (_thisSingleton == null)
     {
         _thisSingleton = this;
     }
     else
     {
         Destroy(gameObject);
     }
 }