plantilla base para movimiento básico
This commit is contained in:
Robii Aragon
2026-02-05 05:07:55 -08:00
parent 195b696771
commit 779f2c8b20
14443 changed files with 23840465 additions and 452 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 ();
}
}
}