Unity 5 使用光线投射不断检查视线内的对撞机

Unity 5 constantly check for a collider in line of sight using raycasts

我正在开发 unity 5 游戏。当我走过某个对撞机时,音频开始播放。我正在尝试制作一个脚本,以便在播放音频并且我的视线中心到达对撞机周边时,音频将停止播放,或者在这种情况下播放不同的声音。这是我的脚本:

using UnityEngine;
using System.Collections;

public class Raycast: MonoBehaviour {

 private RaycastHit hit;
 private float range = 300;

 // Use this for initialization
 void Start() {}

 // Update is called once per frame
 void Update() {
  checkforinput();
 }

 void checkforinput() {
  if (Input.GetButtonDown("Fire1")) {
   if (Physics.Raycast(transform.position, transform.forward, out hit, range)) {
    print(hit.transform.name);
    //source.Stop();
   }
  }
 }

}

那么我如何在不点击我的 fire1 按钮的情况下不断执行此操作?

改变这个

if (Input.GetButtonDown("Fire1")) {
    if (Physics.Raycast(transform.position, transform.forward, out hit, range)) {
    print(hit.transform.name);
    //source.Stop();
    }
}

对此:

if (Physics.Raycast(transform.position, transform.forward, out hit, range)) {
    print(hit.transform.name);
    //source.Stop();
}

注意

if (Input.GetButtonDown("Fire1"))

正在检查鼠标输入。如果它是真的那么 "if" 块中的任何内容都会 运行 .