如何解决如何制作MOBA游戏控件?
我想做 Dota 中的控件。在那里,当您单击任何地形时,角色需要去的地方会出现一个点。如何制作这个系统?我正在尝试使用光线执行此操作,但找不到结束位置:
var space_state = get_world().direct_space_state
if Input.is_action_pressed("LefftClick"):
_to_ray_cast = translation
_to_ray_cast.y -= 15
ray_cast = space_state.intersect_ray(
translation,_to_ray_cast)
print(ray_cast)
怎么做?屏幕大小可能会改变
示例。 https://i.ibb.co/SdMJ5vW/2021-05-19-21-23.png 我将鼠标悬停在红点上并单击。我需要我点击的世界上确切的红雀。这些坐标旁边有一堵墙
解决方法
如果您想从相机向用户指向的位置进行光线投射,请使用这些:
var ray_length = 100 # some large number
var mouse_pos = get_viewport().get_mouse_position()
var from = camera.project_ray_origin(mouse_pos)
var to = camera.project_ray_normal(mouse_pos).normalized() * ray_length
其中相机是当前的 Camera
。
那么 from
和 to
是 intersect_ray
的参数。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。