Skip to main content

解决Unity XR中UI不可交互的问题

· 2 min read
Ferdinand Su

笔者这一周来都在学习如何在Unity XR场景中构筑一个可交互的UI,可是无论怎么搞UI都没有反应,控制器的光线根本就照不到UI上,更别提交互了。然而,就在刚刚,这个谜题被解开,原因非常难绷。

检查到最后,笔者发现UI不可交互的原因居然是距离过远。因为这个UI始终都过于大了,所以笔者特意通过调整距离的方式,把它放到了比较远的地方,结果反而导致无法交互。最后,笔者选择用transformscale调整UI大小,值基本在0.001-0.005之间,可以说小的很离谱了。然后,当MainCamera和UI足够近的时候,就可以交互了......

另外附上让UI始终悬浮在眼前的代码(改进自[此博客](Unity结合HTC Vive开发之控制UI始终在视野前方_unity 物体绑定到vr视野_大嘴先生的博客-CSDN博客)):

FollowCamera.cs
using UnityEngine;

public class FollowCamera : MonoBehaviour
{
[SerilizedField] private float distance;

void Update()
{
transform.rotation = Camera.main.transform.rotation;
transform.TransformDirection(Camera.main.transform.forward);
transform.position = Camera.main.transform.position;
transform.Translate(new Vector3(0f, 0f, distance));
}
}

加到UI的Canvas组件上即可。