1
0
Fork 0
This repository has been archived on 2022-10-04. You can view files and clone it, but cannot push or open issues or pull requests.
godot-thunderk-basics/lod/lod_manager.gd

37 lines
825 B
GDScript

# Level-of-Detail instances manager (use as Autoload, or in custom viewport)
class_name LODManager
extends Node
# -- signals --
# -- enums --
# -- constants --
# -- exported variables --
export var precision = 0.1
export var timer = 5.0
# -- public variables --
# -- private variables --
var _previous_cam = Vector3.INF
var _time = 0.0
# -- onready variables --
# -- preloads --
# -- virtual methods --
func _process(delta):
var cam := get_viewport().get_camera().global_transform.origin
_time += delta
if _time > timer or cam.distance_to(_previous_cam) > precision:
_previous_cam = cam
_time = 0.0
update_lod(cam)
# -- public methods --
func update_lod(camera_location: Vector3):
for instance in get_tree().get_nodes_in_group("thunderk-lod"):
instance.update_lod(camera_location)
# -- private methods --