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.
		
		
		
		
		
			
		
			
				
	
	
		
			33 lines
		
	
	
		
			823 B
		
	
	
	
		
			GDScript
		
	
			
		
		
	
	
			33 lines
		
	
	
		
			823 B
		
	
	
	
		
			GDScript
		
	
| extends Node3D
 | |
| class_name Particle
 | |
| 
 | |
| var life_time : float
 | |
| var is_pause : bool = false
 | |
| var particle_list : Array[GPUParticles3D]
 | |
| var speed_scale_list = []
 | |
| 
 | |
| func _ready():
 | |
| 	for child in get_children():
 | |
| 		if child is GPUParticles3D:
 | |
| 			var particle = child as GPUParticles3D
 | |
| 			particle_list.append(particle)
 | |
| 			speed_scale_list.append(particle.speed_scale)
 | |
| 	for particle : GPUParticles3D in particle_list:
 | |
| 		if particle.lifetime > life_time:
 | |
| 			life_time = particle.lifetime
 | |
| 		particle.restart()
 | |
| 
 | |
| func _process(delta):
 | |
| 	if is_pause:
 | |
| 		return
 | |
| 	life_time -= delta
 | |
| 	if life_time <= 0:
 | |
| 		queue_free()
 | |
| 
 | |
| func set_pause(is_pause_set:bool):
 | |
| 	is_pause = is_pause_set
 | |
| 	for i in range(len(particle_list)):
 | |
| 		var particle = particle_list[i]
 | |
| 		var speed_scale = speed_scale_list[i]
 | |
| 		particle.speed_scale = 0 if is_pause else speed_scale
 |