// 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); }); }
// Update is called once per frame void Update() { if (Input.GetKeyDown(KeyCode.Space) && this.rigid2D.velocity.y == 0) { this.animator.SetTrigger("JumpTrigger"); this.rigid2D.AddForce(transform.up * this.jumpForce); } int key = 0; if (Input.GetKey(KeyCode.RightArrow)) { key = 1; } if (Input.GetKey(KeyCode.LeftArrow)) { key = -1; } float speedx = Mathf.Abs(this.rigid2D.velocity.x); if (speedx < this.maxWalkSpeed) { this.rigid2D.AddForce(transform.right * key * this.walkForce); } //反転対策 if (key != 0) { transform.localScale = new Vector3(key, 1, 1); } //プレイヤーの速度に応じてアニメーション速度を変える if (this.rigid2D.velocity.y == 0) { this.animator.speed = speedx / 2.0f; } else { this.animator.speed = 1.0f; } if (transform.position.y < -10) { if (stage.GetStageNumber() == 1) { SceneManager.LoadScene("GameScene1"); } else { SceneManager.LoadScene("GameScene2"); } } }
/// <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); }
// Update is called once per frame void Update() { if (Input.GetMouseButtonDown(0)) { if (stage.GetStageNumber() == 1) { SceneManager.LoadScene("GameScene2"); stage.NextStageNum(); } else { SceneManager.LoadScene("GameScene1"); stage.InputStageNum(1); } } }