Added Interact system with a raycast
This commit is contained in:
17
Assets/scripts/InteractRay.gd
Normal file
17
Assets/scripts/InteractRay.gd
Normal file
@ -0,0 +1,17 @@
|
||||
extends RayCast3D
|
||||
|
||||
@onready var prompt = $"Prompt"
|
||||
|
||||
# Called when the node enters the scene tree for the first time.
|
||||
func _ready():
|
||||
add_exception(owner)
|
||||
|
||||
func _physics_process(delta):
|
||||
prompt.text = ""
|
||||
if is_colliding():
|
||||
var collider = get_collider()
|
||||
if collider is Interactable:
|
||||
prompt.text = "Press E"
|
||||
if Input.is_action_just_pressed("interact"):
|
||||
collider.interact(owner)
|
||||
|
||||
10
Assets/scripts/vape.gd
Normal file
10
Assets/scripts/vape.gd
Normal file
@ -0,0 +1,10 @@
|
||||
class_name Interactable
|
||||
extends Node3D
|
||||
|
||||
@export var promt_message:String
|
||||
@export var promt_key:String
|
||||
|
||||
|
||||
func interact(player):
|
||||
print("vape picked up")
|
||||
get_parent().get_parent().queue_free()
|
||||
Reference in New Issue
Block a user