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; }
// 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); }); }
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); }
/// <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); }
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; }
/// <summary> /// 再開場所と角度を保存されたデータから取得し代入する /// </summary> private void SubstituteSavedCheckPointTransform() { restartPosition = StageDataPrefs.GetCheckPointPosition(); restartRotation = StageDataPrefs.GetCheckPointRotation(); }