2017-04-17 87 views
0

我有一個問題,當我寫這個播放聲音時,播放器距離4單位米的距離並按下「e」,但它給了我一個錯誤,hit無法轉換爲float 。我現在應該怎麼做?Raycast命中錯誤

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); 
    } 
} 

回答

2

您對呼叫

if (Physics.Raycast(transform.position, fwd, out hit, rayLength)) { 

缺少out關鍵字它允許方法寫入到hit說法。如果沒有它,C#將無法識別所需的過載並將您指向最近的可用過載,在這種情況下,第三個參數爲float。