我正在制作 360 度视频,需要使用 raycast 来选择菜单选项。我已经绘制了光线投射,它似乎没问题。但是,没有进行检测。这些按钮位于世界视图中,并具有网格对撞机,并且启用了“触发”。
以下是附加到主摄像机的脚本:
using System.Collections;
using System.Collections.Generic; using UnityEngine;
public class VrEyeRaycaster : MonoBehaviour {
public string objectCollided;
// Use this for initialization
void Start()
{
}
// Update is called once per frame
void Update()
{
//create the ray to cast forward
RaycastHit hit;
Vector3 origin = transform.position;
Vector3 direction = transform.TransformDirection(Vector3.forward)*20;
Ray ray = new Ray(origin, direction);
Debug.DrawRay(origin, direction, Color.green);
if (Physics.Raycast(ray, out hit, 100f))
{
objectCollided = hit.collider.gameObject.name;
print(objectCollided);
}
else
{
string s = "Nothing hit by RayCaster";
print(s);
}
}
}
我尝试将相机及其容器放入世界画布,但它也没有工作。任何想法我可能会出错???我实际上看不到光线是否穿透了按钮,因为我只能在场景窗口中看到光线并且只能在游戏窗口中看到按钮。