Esempio n. 1
0
    private void Start()
    {
        //データがそんざいしなければ最初の場所から開始
        if (!StageDataPrefs.IsSavedData() || !StageManager.resum)
        {
            restartPosition = new Vector3(first.position.x, 0, first.position.z);
            restartRotation = first.rotation;
        }
        else
        {
            //データが存在するならその場所から開始
            SubstituteSavedCheckPointTransform();
        }

        //プレイヤーの座標を書き換える
        GameObject   player       = GameObject.FindGameObjectWithTag(TagName.Player.String());
        PlayerAction playerAction = player.GetComponent <PlayerAction>();

        //再開地点の方向とプレイヤーの向きが180度違うので回転させる
        restartRotation *= Quaternion.Euler(0, 180, 0);
        playerAction.StartPositionRotation(restartPosition, restartRotation);
        CameraController camera = GameObject.FindObjectOfType <CameraController>();

        camera.PositionToPlayerBack();
        StageManager.resum = false;
    }
Esempio n. 2
0
    // Use this for initialization
    void Start()
    {
        this.player      = GameObject.FindGameObjectWithTag("Player");
        playerStay       = false;
        this.toNextStage = false;
        //canvas.gameObject.SetActive(false);
        GetComponent <LongPressDetector>();
        GetComponent <LongPressDetector>().OnLongPressTrigger += (e) => {
            Debug.Log("stay " + playerStay);
            //this.canvas.gameObject.SetActive(false);
            this.toNextStage = true;

            if (playerStay == true)
            {
                //現在のステージ番号を保存
                string currentScene       = SceneManager.GetActiveScene().name;
                int    currentStageNumber = StageNumber.GetStageNumber(currentScene);
                StageDataPrefs.SaveStageNumber(++currentStageNumber);
                //チェックポイントのデータの削除
                StageDataPrefs.DeleteCheckPoint();
                SceneChanger.Instance().Change(nextSceneName, new FadeData(1, 1, Color.black));
            }
        };

        player.GetComponent <Status>().onDamage.Subscribe((e) => {
            //ここにダメージ受けた時の処理
            GetComponent <LongPressDetector>().Cancel();
            //ActivateCanvas(false);
        });
    }
Esempio n. 3
0
    public static void Resume(FadeData fadeData)
    {
        StageManager.resum = true;
        int    currentStageNumber = StageDataPrefs.GetStageNumber();
        string stage = StageNumber.GetStageName(currentStageNumber);

        SceneChanger.Instance().Change(SceneNameManager.GetKeyByValue(stage), fadeData);
    }
Esempio n. 4
0
    /// <summary>
    /// チェックポイントを通過した
    /// </summary>
    /// <param name="position">座標</param>
    /// <param name="rotation">角度</param>
    public void Pass(Vector3 position, Quaternion rotation)
    {
        restartPosition = position;
        restartRotation = rotation;
        //リスタート地点を保存
        StageDataPrefs.SaveCheckPoint(restartPosition, restartRotation);
        //現在のシーン番号を保存
        string currentScene       = SceneManager.GetActiveScene().name;
        int    currentStageNumber = StageNumber.GetStageNumber(currentScene);

        StageDataPrefs.SaveStageNumber(currentStageNumber);
    }
Esempio n. 5
0
    public override void OnInspectorGUI()
    {
        base.OnInspectorGUI();
        EditorGUILayout.Separator();
        EditorGUILayout.BeginVertical();
        EditorGUILayout.IntField("ステージ番号", StageDataPrefs.GetStageNumber());
        EditorGUILayout.Vector3Field("座標", StageDataPrefs.GetCheckPointPosition());
        EditorGUILayout.Vector3Field("回転", StageDataPrefs.GetCheckPointRotation().eulerAngles);

        if (GUILayout.Button("消去"))
        {
            StageDataPrefs.DeleteAll();
        }

        EditorGUILayout.EndVertical();
    }
 public IEnumerator OnExecute()
 {
     StageDataPrefs.DeleteAll();
     yield break;
 }
Esempio n. 7
0
 /// <summary>
 /// 再開場所と角度を保存されたデータから取得し代入する
 /// </summary>
 private void SubstituteSavedCheckPointTransform()
 {
     restartPosition = StageDataPrefs.GetCheckPointPosition();
     restartRotation = StageDataPrefs.GetCheckPointRotation();
 }