unity给我们提供了一条api
GraphicRaycaster,所以当我們项目中只有canvas自带的GraphicRaycaster时我们可以使用上述api判断鼠标是否在UI上。但是当我们场景camera上挂有PhysicsRaycaster则判断完全会出现问题。我们会发现鼠标移动到含有collider的3D物体跟随鼠标移动上以上API也会返回true此时我们需要自己写一个射线检测的方法来判断是否在UI上。
我们可以将方法写在静态工具类里供全局调用
unity给我们提供了一条api
GraphicRaycaster,所以当我們项目中只有canvas自带的GraphicRaycaster时我们可以使用上述api判断鼠标是否在UI上。但是当我们场景camera上挂有PhysicsRaycaster则判断完全会出现问题。我们会发现鼠标移动到含有collider的3D物体跟随鼠标移动上以上API也会返回true此时我们需要自己写一个射线检测的方法来判断是否在UI上。
我们可以将方法写在静态工具类里供全局调用
该楼层疑似违规已被系统折叠
2D游戲的这种移动 照道理不是应该比3D好做些么(不用考虑纵深怎么获取)
获取鼠标位置(Input.mousePosition)然后 RectTransformUtility.ScreenPointTo……(to什么自己看吧,怎么方便怎么来不會用这个方法自己等比换算也是可以的),然后 你的那个物体跟随鼠标移动位置(.transform.position)=转换后的位置就可以了(需要有跟随移动的效果的话僦lerp需要鼠标在哪东西在哪的效果就直接赋值就可以了)