C# 光线投射命中错误
我有一个问题,当我写这篇文章来播放一个声音时,播放机在距离4单位米以下并按下“e”,但它给了我一个错误,C# 光线投射命中错误,c#,unity3d,scripting,raycasting,C#,Unity3d,Scripting,Raycasting,我有一个问题,当我写这篇文章来播放一个声音时,播放机在距离4单位米以下并按下“e”,但它给了我一个错误,hit无法转换为float。我现在该怎么办 public AudioSource sound; public int rayLength = 4; public GameObject doorText; RaycastHit hit; void Update() { var fwd = transform.TransformDirection(Vector3.forward);
hit
无法转换为float
。我现在该怎么办
public AudioSource sound;
public int rayLength = 4;
public GameObject doorText;
RaycastHit hit;
void Update()
{
var fwd = transform.TransformDirection(Vector3.forward);
if (Physics.Raycast(transform.position, fwd, hit, rayLength))
{
if (hit.collider.gameObject.tag == "Boxen")
{
doorText.gameObject.SetActive(true);
if (Input.GetKeyDown("e")) //or Input.GetKeyDown("e") Input.GetButtonDown("Fire1")
{
sound.Play();
}
}
}
else
{
doorText.gameObject.SetActive(false);
}
}
您在该呼叫中缺少一个
out
关键字
if (Physics.Raycast(transform.position, fwd, out hit, rayLength)) {
它允许方法写入
hit
参数。如果没有它,C#将无法识别所需的重载并将您指向最接近的可用重载,在这种情况下,第三个参数是float。您在该调用中缺少一个out
关键字
if (Physics.Raycast(transform.position, fwd, out hit, rayLength)) {
它允许方法写入hit
参数。如果没有它,C#将无法识别所需的重载并将您指向最接近的可用重载,在本例中,第三个参数是float