plantilla base para movimiento básico
This commit is contained in:
Robii Aragon
2026-02-05 05:07:55 -08:00
parent ed7b223c04
commit fd87a6ffd5
14441 changed files with 13711084 additions and 20 deletions

View File

@@ -0,0 +1,72 @@
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class projectilesOnCharacterBodyManager : MonoBehaviour
{
[Header ("Main Settings")]
[Space]
public bool removeProjectilesEnabled = true;
public float timeToRemoveProjectiles = 5;
public float waitTimeBetweenProjectileRemoving = 2;
List<GameObject> projectilesGameObjectList = new List<GameObject> ();
Coroutine removeCoroutine;
float currentRemoveProjectileWaitTime;
public void addProjectileToCharacterBody (GameObject newProjectileObject)
{
if (!removeProjectilesEnabled) {
return;
}
if (!projectilesGameObjectList.Contains (newProjectileObject)) {
projectilesGameObjectList.Add (newProjectileObject);
}
currentRemoveProjectileWaitTime = timeToRemoveProjectiles;
activateProjectileRemove ();
}
void activateProjectileRemove ()
{
stopRemoveProjectilesCoroutine ();
removeCoroutine = StartCoroutine (removeProjectilesCoroutine ());
}
public void stopRemoveProjectilesCoroutine ()
{
if (removeCoroutine != null) {
StopCoroutine (removeCoroutine);
}
}
IEnumerator removeProjectilesCoroutine ()
{
yield return new WaitForSeconds (currentRemoveProjectileWaitTime);
int projectileIndex = projectilesGameObjectList.Count - 1;
if (projectilesGameObjectList [projectileIndex] != null) {
Destroy (projectilesGameObjectList [projectileIndex]);
}
projectilesGameObjectList.RemoveAt (projectileIndex);
if (projectilesGameObjectList.Count > 0) {
currentRemoveProjectileWaitTime = waitTimeBetweenProjectileRemoving;
activateProjectileRemove ();
}
}
}