You cannot select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
	
	
		
			28 lines
		
	
	
		
			647 B
		
	
	
	
		
			GDScript
		
	
		
		
			
		
	
	
			28 lines
		
	
	
		
			647 B
		
	
	
	
		
			GDScript
		
	
| 
											2 years ago
										 | extends Camera3D | ||
|  | class_name CameraManager | ||
|  | 
 | ||
|  | var target:int | ||
|  | var offset:Vector3 | ||
|  | 
 | ||
|  | func _ready(): | ||
| 
											2 years ago
										 | 	Global.camera_mgr = self | ||
| 
											2 years ago
										 | 	SignalManager.character_create.connect(on_character_create) | ||
|  | 	SignalManager.character_pos_changed.connect(on_character_pos_changed) | ||
|  | 	SignalManager.character_destroy.connect(on_character_destroy) | ||
|  | 	 | ||
|  | func _process(delta): | ||
|  | 	pass | ||
|  | 	 | ||
|  | func on_character_create(id:int,team:Enum.ETeam,pos:Vector3): | ||
|  | 	if team == Enum.ETeam.Player: | ||
|  | 		target = id | ||
|  | 		offset = position - pos | ||
|  | 	 | ||
|  | func on_character_pos_changed(id:int,pos:Vector3): | ||
|  | 	if id == target: | ||
|  | 		position = pos + offset | ||
|  | 
 | ||
|  | func on_character_destroy(id:int): | ||
|  | 	target = 0 | ||
|  | 	offset = Vector3.ZERO |