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.
		
		
		
		
		
			
		
			
				
	
	
		
			26 lines
		
	
	
		
			724 B
		
	
	
	
		
			GDScript
		
	
			
		
		
	
	
			26 lines
		
	
	
		
			724 B
		
	
	
	
		
			GDScript
		
	
| extends Node3D
 | |
| class_name CharacterManager
 | |
| 
 | |
| var scene_player = preload("res://scene/character/player.tscn")
 | |
| var scene_monster = preload("res://scene/character/monster.tscn")
 | |
| 
 | |
| var character_map = {}
 | |
| var character_idx : int = 0
 | |
| 
 | |
| func create_character(cfg:CharacterCfg):
 | |
| 	var characterNode:Node
 | |
| 	match cfg.type:
 | |
| 		Enum.ECharacterType.Player:
 | |
| 			characterNode = scene_player.instantiate()
 | |
| 		Enum.ECharacterType.Monster:
 | |
| 			characterNode = scene_monster.instantiate()
 | |
| 	add_child(characterNode)
 | |
| 	characterNode.name = cfg.name
 | |
| 	var character:Character = characterNode as Character
 | |
| 	character_idx += 1
 | |
| 	character_map[character_idx]=character
 | |
| 	character.init(character_idx,cfg)
 | |
| 
 | |
| func get_character(id:int):
 | |
| 	return character_map[id]
 |