Are you sure you want to delete the question?

If your question is resolved, you may close it.

Leaving a resolved question undeleted may help others!

We hope you find it useful!

unity rb.velocityを使ってプレイヤーを動かせない

解決したいこと

プレイヤーのマウスを使って視点操作はできるのですが、前後左右に動かすことができません

発生している問題・エラー

警告 rb.velocityは旧型式


### 該当するソースコード
`using System.Runtime.CompilerServices;
using Unity.VisualScripting;
using UnityEngine;

public class FPScontolor : MonoBehaviour
{
    [SerializeField] private GameObject Player;
    [SerializeField] private float speed;
    [SerializeField] private float sensitivity = 1f;

    private Rigidbody rb;
    private Vector3 cameraDirection = Vector3.zero;
    private Vector2 angle;
    private Vector2 input;
   
    void Start()
    {
        rb = Player.GetComponent<Rigidbody>();

        angle = input = Vector2.zero;
    }

    // Update is called once per frame
    void Update()
    {
        angle += new Vector2(-Input.GetAxis("Mouse Y"), Input .GetAxis("Mouse X")) * sensitivity;
        angle = new Vector2(Mathf.Clamp(angle.x, -85f, 85f), angle.y);

        transform.eulerAngles = new Vector3(angle.x, angle.y, 0);

        input = new Vector2(Input.GetAxis("Horizontal"), Input.GetAxis("Vertical"));
    }

    private void FixedUpdate()
    {
        cameraDirection = Vector3.Scale(transform.forward, new Vector3(1f, 0f, 1f)).normalized;
        Vector3 Forward = cameraDirection * input.y + transform.right * input.x;
        Vector3 moveVelocity = Forward * speed + new Vector3(0f, rb.velocity.y,  0f );
        rb.velocity = moveVelocity;
    }
}


### 自分で試したこと
YouTubeでFPS視点の動画を見て丸々写しましたが、このプログラムではマウス視点操作のみ動きます
0

1Answer

移動速度の倍率を変化させる「speed」変数の値が0になっているのではないでしょうか。
[SerializeField]がついている変数はInspectorで値を調整することができます。

1Like

Your answer might help someone💌