我有一个问题,当我写这个以播放声音时播放器距离4统计米并且按下" e",但它给我一个错误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);
}
}
答案 0 :(得分:3)
您在该通话中缺少out
个关键字
if (Physics.Raycast(transform.position, fwd, out hit, rayLength)) {
它允许该方法写入hit
参数。没有它,C#将无法识别所需的重载,并指向最接近的可用重载,在这种情况下,第三个参数是浮点数。