Advertisement
Nancok

LookAtComponent2D

May 3rd, 2024 (edited)
231
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. extends ComponentNode
  2. class_name Node2DComponentLookAtPoint
  3.  
  4. @export var enabled:bool = true:
  5.     set(val):
  6.         enabled = val
  7.         set_physics_process(enabled)
  8.  
  9. @export_range(0,1) var turnFactor:float = 0.8
  10.  
  11. @export var defaultRotation:Vector2 = Vector2.RIGHT
  12.  
  13. ## Keep in mind that as the body rotates, the point does as well.
  14. ## Use global_position to ignore this.
  15. var point:Vector2
  16.  
  17. func _is_node_valid_parent(node:Node)->bool:
  18.     return node is Node2D
  19.    
  20. func _parent_update():
  21.     if targetNode is Node2D:
  22.         enabled = enabled
  23.     else:
  24.         enabled = false
  25.  
  26. #New funcs
  27. func _physics_process(_delta: float) -> void:
  28.     var targetAngle:float = point.angle() - defaultRotation.angle()
  29.     targetNode.rotation = lerp_angle(targetNode.rotation, targetAngle, turnFactor)
  30.    
  31.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement