我有和raycast,以及一个rayCastHit。每当用户点击开火按钮时。它会将FPS字符移动到rayCastHit所在的位置。 lightRetical是一个gameObject变量,它是一个聚光灯,显示了rayCastHit的位置。
有趣的是,当我点击团结游戏时它会起作用。但每当我构建到我的Android手机时,它都无法正常工作。我无法移动fps角色。
我使用的FPS角色来自标准资产"字符"以及我将它们添加到Update()方法的代码。
RaycastHit seen;
Ray raydirection = new Ray(transform.position, cam.transform.forward);
int sightlength = 5;
if (Physics.Raycast(raydirection, out seen, sightlength))
{
if (seen.collider.tag == "Floor" && Input.GetButtonDown("Fire1")) //in the editor, tag anything you want to interact with and use it here
{
Vector3 relativePoint;
lightRetical.SetActive(true);
relativePoint = seen.point;
relativePoint.y = 2.0f;
bodychar.transform.position = relativePoint;
}
else
{
lightRetical.SetActive(true);
Vector3 relativePoint;
relativePoint = seen.point;
relativePoint.y = 2.64f;
lightRetical.transform.position = relativePoint;
}
}
else
{
lightRetical.SetActive(false);
}
答案 0 :(得分:0)
我建议从相机位置向前投射光线。如果玩家转过头,那么光线投射就会跟随。我目前正在为VR开发一个应用程序,这似乎是最好的解决方案。您可以使用碰撞图层来过滤光线投射。我还会将hit.transform打印到控制台,以检查光线投射的内容。希望这可以帮助。