예제 #1
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);
        });
    }
예제 #2
0
    // 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");
            }
        }
    }
예제 #3
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);
    }
예제 #4
0
 // 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);
         }
     }
 }