24 lines
542 B
GDScript
24 lines
542 B
GDScript
extends Node3D
|
|
|
|
@onready var ball = owner
|
|
|
|
var random_offset : Vector3
|
|
|
|
|
|
func _ready():
|
|
ball.ball_collision_started.connect(_get_random_offset)
|
|
|
|
|
|
func _get_random_offset():
|
|
# Align rotation to collision normal
|
|
look_at(ball.collision_normal + ball.global_position, Utilities.LOOK_AT_OFFSET_FIX)
|
|
|
|
# Compose a random vector
|
|
var x = randf_range(-0.5, 0.5)
|
|
var y = randf_range(-0.5, 0.5)
|
|
var z = randf_range(0, 1)
|
|
var random_vector = Vector3(x, y, z)
|
|
|
|
$VectorPosition.position += random_vector
|
|
random_offset = $VectorPosition.position
|