白耳橘猫 2025-03-07 17:35 采纳率: 0%
浏览 8

EasyAR + hololens2 中canvas 问题

hololens2中canvas设为world space,如果设为overlay,会点不到除了屏幕中点的任何按钮。
现在接了EasyAR,实现了image targer,发现官方案例中的canvas 是overlay模式,改到world space之后 只要识别一下图片物体显示出来后相机会异常,会自己跟着目标图片动。求解

  • 写回答

4条回答 默认 最新

  • 码农阿豪@新空间 新星创作者: 前端开发技术领域 2025-03-07 17:52
    关注
    让阿豪来帮你解答,本回答参考chatgpt3.5编写提供,如果还有疑问可以评论或留言
    问题分析:
    1. Hololens2中Canvas设为World Space时,无法点击除屏幕中心点之外的按钮。
    2. 使用EasyAR实现Image Target后,发现官方案例中的Canvas为Overlay模式,但改为World Space后相机异常,会自动跟随目标图片移动。 解决方案:
    3. 使用Raycast Target属性确保按钮可以被点击,即使Canvas设为World Space模式。
    4. 在EasyAR中将Canvas设为Overlay模式,但需要调整相机的位置和跟随逻辑,使其不随目标图片移动。 代码示例:
    // 1.使用Raycast Target属性确保按钮可以被点击
    // 在Button组件中勾选Raycast Target属性
    // 示例代码如下:
    using UnityEngine;
    using UnityEngine.UI;
    public class ButtonClick : MonoBehaviour
    {
        private Button button;
        void Start()
        {
            button = GetComponent<Button>();
            button.onClick.AddListener(OnButtonClick);
        }
        void OnButtonClick()
        {
            Debug.Log("Button Clicked!");
        }
    }
    // 2. 调整EasyAR中的相机位置和跟随逻辑
    // 可以根据Image Target的位置和旋转调整相机的位置
    // 示例代码如下:
    using UnityEngine;
    public class CameraFollowTarget : MonoBehaviour
    {
        public Transform target;
        public Vector3 offset;
        void Update()
        {
            transform.position = target.position + offset;
            transform.rotation = target.rotation;
        }
    }
    

    以上是针对问题的解决方案和代码示例,希望能帮助到您解决问题。如果还有其他问题或需要更多帮助,请随时提出。

    评论

报告相同问题?

问题事件

  • 创建了问题 3月7日