【发布时间】:2017-12-14 17:04:34
【问题描述】:
我想检测相机 FOV 内所有标记为“Wall_[0-24]”的游戏对象。我已经尝试过 Raycasting,但由于它只有一条射线,它不会同时捕获多个对象。 我试过这个:
void Update() {
GameObject walls = GameObject.FindGameObjectWithTag ("Wall");
Renderer[] renders = walls.GetComponentsInChildren<Renderer> ();
for (int i = 1; i < renders.Length; i++) {
if (walls.GetComponentInChildren<Renderer> ().isVisible) {
Debug.Log (renders[i] + " is detected!");
} else {
Debug.Log ("Nothing's detecetd!");
}
}
}
我得到的只是一遍又一遍的每一面墙 - 并不真正取决于相机的位置。当我的相机沿着某个路径移动时,可见的墙壁应该会发生变化。在图像中,绿色部分可见,而红色部分不再可见(因为相机已经通过了它们)。
那么我怎样才能通过这个特定的相机实现所有看到的墙壁的输出?
感谢您的帮助!
【问题讨论】:
-
嗨,我想你应该问一个带问题的问题。也许这会对您遇到的问题以及您正在尝试做的事情有所了解。
-
@Programmer 但我已经这样做了?
标签: c# unity3d scripting camera frustum