Ejemplo n.º 1
0
    // Update is called once per frame
    void FixedUpdate()
    {
        if (!hasAuthority)     //これがないと自身の操作を分別できない
        {
            LerpPosition();
        }
        else
        {
            inputHorizontal = MyInput.Direction().x;
            inputVertical   = MyInput.Direction().z;

            // カメラの方向から、X-Z平面の単位ベクトルを取得
            Vector3 cameraForward = Vector3.Scale(Camera.main.transform.forward, new Vector3(1, 0, 1)).normalized;

            // 方向キーの入力値とカメラの向きから、移動方向を決定
            Vector3 moveForward = cameraForward * inputVertical + Camera.main.transform.right * inputHorizontal;

            // 移動方向にスピードを掛ける。ジャンプや落下がある場合は、別途Y軸方向の速度ベクトルを足す。
            rb.velocity = moveForward * moveSpeed + new Vector3(0, rb.velocity.y, 0);

            // キャラクターの向きを進行方向に
            if (moveForward != Vector3.zero)
            {
                transform.rotation = Quaternion.LookRotation(moveForward);
            }

            CmdMove(rb.velocity, transform.rotation);
        }
    }
Ejemplo n.º 2
0
    void FixedUpdate()
    {
        if (!hasAuthority)
        {
            LerpPosition();
            return;
        }

        if (player == null)
        {
            player = gameObject.GetComponent <Player>();
        }

        if (player.isDead || player.catchTrap || !isLocalPlayer)
        {
            return;
        }

        inputHorizontal = MyInput.Direction().x;
        inputVertical   = MyInput.Direction().z;

        // カメラの方向から、X-Z平面の単位ベクトルを取得
        player.cameraForward = Vector3.Scale(Camera.main.transform.forward, new Vector3(1, 0, 1)).normalized;

        // 方向キーの入力値とカメラの向きから、移動方向を決定
        player.moveForward = player.cameraForward * inputVertical + Camera.main.transform.right * inputHorizontal;


        // 移動方向にスピードを掛ける。ジャンプや落下がある場合は、別途Y軸方向の速度ベクトルを足す。
        rb.velocity = player.moveForward * moveSpeed + new Vector3(0, rb.velocity.y, 0);

        // キャラクターの向きを進行方向に
        if (player.moveForward != Vector3.zero)
        {
            transform.rotation = Quaternion.LookRotation(player.moveForward);
        }

        CmdMove(this.transform.position);
    }
Ejemplo n.º 3
0
    void FixedUpdate()
    {
        //if (player.isDead) return;

        inputHorizontal = MyInput.Direction().x;
        inputVertical   = MyInput.Direction().z;

        // カメラの方向から、X-Z平面の単位ベクトルを取得
        Vector3 cameraForward = Vector3.Scale(Camera.main.transform.forward, new Vector3(1, 0, 1)).normalized;

        // 方向キーの入力値とカメラの向きから、移動方向を決定
        Vector3 moveForward = cameraForward * inputVertical + Camera.main.transform.right * inputHorizontal;

        // 移動方向にスピードを掛ける。ジャンプや落下がある場合は、別途Y軸方向の速度ベクトルを足す。
        rb.velocity = moveForward * moveSpeed + new Vector3(0, rb.velocity.y, 0);

        // キャラクターの向きを進行方向に
        if (moveForward != Vector3.zero)
        {
            transform.rotation = Quaternion.LookRotation(moveForward);
        }
    }