在 Unity 中触发接近传感器时出现问题

Having issues triggering the proximity sensor in Unity

我正在尝试使用 unity remote 在 phone 中使用接近传感器。 我试着按照这个 Documentation

输入系统工作正常。我已经安装了所有东西并导入了所有示例,unity remote 也在工作并且我已经使用 Sensor Test App 在我的 android 设备上测试了传感器。

/我只想触发此脚本并测试它是否正常工作。我无法将它附加到游戏对象,因为它不是从 MonoBehaviour 派生的。/

编辑:我已将脚本更改为 MonoBehaviour.before,它源自 Sensor

这是我的新传感器脚本:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.InputSystem;
using UnityEngine.InputSystem.Controls;

public class Prox : MonoBehaviour
{
    public ProximitySensor proximity;

private void Start()
{

    if (ProximitySensor.current != null)
    {
        var _ProximitySensor = ProximitySensor.current;
        InputSystem.EnableDevice(_ProximitySensor);
        Debug.Log("proximity sensor is working");
    }
    Debug.Log("proximity error");
}
void Update()
{

    if (proximity != null)
    {
      //  InputSystem.EnableDevice(proximity);
        var _ProximitySensor = ProximitySensor.current;
        Debug.Log(_ProximitySensor);
        var _dist = _ProximitySensor.distance;
        Debug.Log(_dist);
    }
    else
    {
       Debug.Log("null");
    }
}
}

控制台的输出总是返回“接近错误” 这意味着我从 ProximitySensor.current 得到空值。 我想要做的是在接近传感器被触发时移动一个游戏对象(用户将 phone 放在他们的耳朵上)。

如有任何帮助,我们将不胜感激

您收到“接近错误”,因为显示它的代码在 Start() 函数中,并且它将始终被执行。你必须写:

private void Start()
{
    if (ProximitySensor.current != null)
    {
        var _ProximitySensor = ProximitySensor.current;
        InputSystem.EnableDevice(_ProximitySensor);
        Debug.Log("proximity sensor is working");
    }
    else
    {
        Debug.Log("proximity error");
    }
}