Exemple #1
0
    /*******************************************************************
    * * ロボットがジャンプできるか調べる処理
    * *****************************************************************/
    void CheckJumping()
    {
        // Rayを生成
        this.ray   = new Ray(transform.position + Vector3.up / 2, transform.forward);
        this.upRay = new Ray(transform.position + Vector3.up * 2, transform.forward);
        //// Rayを視覚的に描画
        //Debug.DrawRay(ray.origin, ray.direction * RAY_LENGTH, Color.blue);
        //Debug.DrawRay(upRay.origin, upRay.direction * RAY_LENGTH, Color.red);

        // ロボットの前方にあるRayがHitし、ロボットの上方にあるRayがHitしていなければ
        if (Physics.Raycast(ray, out rayHit, RAY_LENGTH, jumpLayerMask) && !Physics.Raycast(upRay, RAY_LENGTH))
        {
            // Bボタンでジャンプ処理
            if (xboxInput.Check(XboxInput.KEYMODE.DOWN, XboxInput.PAD.KEY_B))
            {
                // スタート地点、中間地点、最終地点の座標格納
                this.startPoint = transform.position;
                this.wayPoint   = (transform.position + rayHit.transform.position) * 0.5f + Vector3.up * jumpForce;
                this.endPoint   = rayHit.transform.position + Vector3.up * 2;
                // スピード初期化、目的地にプレイヤーを向ける、ジャンプ状態へ
                this.moveDirection      = Vector3.zero;
                this.rigidBody.velocity = Vector3.zero;
                Vector3 dir = (rayHit.transform.position - transform.position).normalized;
                transform.rotation = Quaternion.LookRotation(new Vector3(dir.x, 0.0f, dir.z));
                this.playerState   = PLAYER_STATE._JUMP;
            }
        }
    }
Exemple #2
0
    void FixedUpdate()
    {
        // ロック中ならこれ以降処理を読まない
        if (GameMgr.IsLock)
        {
            return;
        }
        // プレイヤーが生成されていたら
        if (prefab)
        {
            // 現在ゲーム上にいるロボットの稼働時間を引いていく
            --playerController._LifeTime;
        }
        // Playerが生成されてなく
        else
        {
            // 見下ろし視点カメラ表示
            if (!LookingDownCamera.activeSelf)
            {
                LookingDownCamera.SetActive(true);
            }
            // Xボタンを押したらロボット生成
            if (xboxInput.Check(XboxInput.KEYMODE.DOWN, XboxInput.PAD.KEY_X))
            {
                GenerateRobot();
            }
        }

        // MENUボタンを押すとMENU画面へ
        if (xboxInput.Check(XboxInput.KEYMODE.DOWN, XboxInput.PAD.KEY_MENU))
        {
            ShowingMenu();
        }

        xboxInput.Initialize();        // 入力初期化
    }
    void FixedUpdate()
    {
        //// ロック中ならこれ以降処理を読まない
        //if (GameMgr.IsLock) { return; }

        // プレイヤーが生成されていたら
        if (prefab)
        {
            // 現在ゲーム上にいるロボットの稼働時間を引いていく
            --playerController._LifeTime;
        }
        // Playerが生成されてなく
        else
        {
            // Xボタンを押したらロボット生成
            if (xboxInput.Check(XboxInput.KEYMODE.DOWN, XboxInput.PAD.KEY_X))
            {
                GenerateRobot();
            }
        }
        xboxInput.Initialize();        // 入力初期化
    }