我是 Unity 和 C# 代碼的新手。我正在從 Brackeys 做一個基本的分步教程,但沒有明顯的原因,我收到這個錯誤,上面寫著“錯誤 CS1503:引數 1:無法從 'float' 轉換為 'UnityEngine.Vector3'”。該錯誤出現在兩個 rb.AddForce 行上。有誰知道這里有什么問題?我正在使用 Unity 2020.3.29f1 個人版。
謝謝你的幫助。
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class PlayerMovement : MonoBehaviour
{
public Rigidbody rb;
public float forwardForce = 2000f;
void FixedUpdate()
{
rb.AddForce(0, 0, forwardForce * Time.deltaTime);
if (Input.GetKey("d") )
{
rb.AddForce(500 * Time.deltaTime);
}
if (Input.GetKey("a") )
{
rb.AddForce(-500 * Time.deltaTime);
}
}
}
uj5u.com熱心網友回復:
有不同的多載AddForce。
AddForce(Vector3 [, ForceMode])
和
AddForce(float, float, float [, ForceMode])
其中兩者ForceMode都是可選的。
您只傳入一個引數float,因此編譯器認為您想要使用第一個多載并徒勞地嘗試將給定的轉換float為 aVector3并且顯然沒有找到任何實作的方法來做這樣的事情。
你可能更想要
rb.AddForce(Vector3.right * 500 * Time.deltaTime);
要么
rb.AddForce(500 * Time.deltaTime, 0, 0);
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/435344.html
