AxisMarker3D.gd 670 B

123456789101112131415161718
  1. tool
  2. class_name AxisMarker3D, "res://marker/AxisMarker3D.svg"
  3. extends Spatial
  4. func _process(_delta):
  5. var holder: Spatial = get_child(0).get_child(0)
  6. var cube: Spatial = holder.get_child(0)
  7. # "Hide" the origin vector if the AxisMarker is at (0, 0, 0)
  8. if translation == Vector3():
  9. holder.transform = Transform()
  10. cube.transform = Transform().scaled(Vector3.ONE * 0.0001)
  11. return
  12. holder.transform = Transform(Basis(), translation / 2)
  13. holder.transform = holder.transform.looking_at(translation, Vector3.UP)
  14. holder.transform = get_parent().global_transform * holder.transform
  15. cube.transform = Transform(Basis().scaled(Vector3(0.1, 0.1, translation.length())))