微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用 Raycast 在编辑器脚本中检测游戏对象

如何解决使用 Raycast 在编辑器脚本中检测游戏对象

我是 Unity 和 C# 的新手,我正在尝试构建一个工具,它可以帮助我在当前游戏对象和最后一个游戏对象之间轻松切换,我使用编辑器脚本来做到这一点,并创建了一个继承 EditorWindow 的类。 我搜索了很多方法并决定使用 Physics.Raycast 但不知何故我在条件中得到错误并且没有执行必要的代码。 你能帮我理解为什么条件会报错吗?如果你有更好的解决方案,我会很高兴听到的。

这是一些代码

using UnityEngine;
using UnityEditor;


public class LastObjectCloseUp : EditorWindow
{
public GameObject currentObject;
public GameObject lastObject;

private Texture2D switchButtonTexture;
private Color switchTextureColor = new Color(70f/255f,140f/255f,170f/255f,8f/10f);

Rect switchRect;

[MenuItem("Window/Tools Window")]
static void OpenWindow()
{
    LastObjectCloseUp window = (LastObjectCloseUp)Getwindow(typeof(LastObjectCloseUp));
}

private void Update()
{
    DetectObject();
}


    private void DetectObject()
{
    Ray ray;
    if (Input.GetMouseButtonDown(0))
    {
        RaycastHit hit;
        ray = Camera.main.ScreenPointToRay(Input.GetTouch(0).position);
     
        if (Physics.Raycast(ray,out hit,Mathf.Infinity))
        {
            if (!hit.transform)
            {
                Debug.Log("hit is null!");
            }

            currentObject = hit.transform.gameObject;
        }
    }
}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。