我有一块用一堆正方形瓷砖做成的板,我有一个圆形的播放器,我想把鼠标放在瓷砖上,把板的位置设置在最近瓷砖的中心,同时按下鼠标;如果没有Canvas和EventSystem,有什么方法可以处理这个问题吗?
有几种方法可以做到这一点,
你可以将所有的瓦片存储在一个数组中,当拖动玩家检查最接近的瓦片的位置时,如果瓦片之间有间隙,并且希望玩家仍然能抓住瓦片,即使玩家没有通过阈值设置超过它,这可能会很好,但如果你有数千个瓦片,并且你正在遍历它们,这可能有点昂贵。
第二个也是最简单的一个是从你的玩家直接向你的瓦片所在的平面投射光线,在命中时将玩家定位在瓦片的中间。如果你在场景中有更多的对象,你也可以用例如";瓷砖";以及在标记的光线投射检查中。此处记录了光线投射的使用https://docs.unity3d.com/ScriptReference/Physics.Raycast.html