【发布时间】:2017-05-17 02:55:01
【问题描述】:
我的 2D 项目中有一个类(例如“foo”),当我在鼠标位置获得对游戏对象的引用时,我想确定该对象是否属于 foo 类。我用
获取对象GameObject objAtMouse = Physics2D.Raycast(Camera.main.ScreenToWorldPoint(mousePos), Vector2.zero).transform.gameObject;
其中 mousePos 是我的鼠标的位置,它似乎按预期工作。为了测试课程,我尝试了以下方法:
- if(objAtMouse is foo){...}
- foo fooAtMouse = objAtMouse as foo; if(fooAtMouse){...}
- if ((objAtMouse.GetComponent("foo") as foo) != null){...}
选项 1. 被建议 here 并且是唯一不产生错误但产生警告的选项
给定的表达式绝不是提供的 ('foo') 类型
上面链接中也建议的选项 2. 会产生错误
无法通过引用转换、装箱转换、拆箱转换、包装转换或空类型转换将类型“UnityEngineGameObject”转换为“foo”
选项 3. 被建议 here 并产生错误
NullReferenceException:对象引用未设置为对象的实例
这似乎是一项简单的任务,但我遇到了一些麻烦。那么,如何确定鼠标所在对象的类/类型?
非常感谢任何帮助!
【问题讨论】: