# 【点击3D场景】
基础的练习,点击3D场景上的静态模型,然后在点击的位置生成对象。
- 被点击的对象需要附加CollisionShape3D。
- 在场景的Camera上设置以下脚本:
extends Camera3D
# 在点击的位置生成的对象预置
var marker = preload("res://hitpoint.tscn")
func _input(event):
if event is InputEventMouseButton:
shoot_ray()
func shoot_ray():
var mouse_pos = get_viewport().get_mouse_position()
var ray_length = 1000
var from = project_ray_origin(mouse_pos)
var to = from + project_ray_normal(mouse_pos) * ray_length
var space = get_world_3d().direct_space_state
var ray_query = PhysicsRayQueryParameters3D.new()
ray_query.from = from
ray_query.to = to
var raycast_result = space.intersect_ray(ray_query)
if !raycast_result.is_empty():
var hp = marker.instantiate()
hp.position = raycast_result["position"]
$"../".add_child(hp)
← 【Timer计时器】 【保存游戏】 →