add ckg
plantilla base para movimiento básico
This commit is contained in:
@@ -0,0 +1,136 @@
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
using UnityEngine.Events;
|
||||
|
||||
public class GKC_PoolingElement : MonoBehaviour
|
||||
{
|
||||
[Header ("Main Settings")]
|
||||
[Space]
|
||||
|
||||
public bool usePoolingEnabled = true;
|
||||
|
||||
public GameObject mainPoolGameObject;
|
||||
|
||||
[Space]
|
||||
[Header ("Other Settings")]
|
||||
[Space]
|
||||
|
||||
public Vector3 currentPositionToSpawn;
|
||||
public Quaternion currentRotationToSpawn;
|
||||
|
||||
[Space]
|
||||
[Header ("Events Settings")]
|
||||
[Space]
|
||||
|
||||
public bool useEventOnSpawn;
|
||||
public UnityEvent eventOnSpawn;
|
||||
|
||||
[Space]
|
||||
|
||||
public bool useEventOnDespawn;
|
||||
public UnityEvent eventOnDespawn;
|
||||
|
||||
[Space]
|
||||
[Space]
|
||||
|
||||
public UnityEvent eventToEnablePoolManagement;
|
||||
public UnityEvent eventToDisablePoolManagement;
|
||||
|
||||
|
||||
public void setPositionToSpawn (Vector3 newValue)
|
||||
{
|
||||
currentPositionToSpawn = newValue;
|
||||
}
|
||||
|
||||
public void setRotationToSpawn (Quaternion newValue)
|
||||
{
|
||||
currentRotationToSpawn = newValue;
|
||||
}
|
||||
|
||||
public virtual void spawnPoolObject ()
|
||||
{
|
||||
if (usePoolingEnabled) {
|
||||
// GKC_PoolingSystem.Spawn (mainPoolGameObject, currentPositionToSpawn, currentRotationToSpawn);
|
||||
|
||||
checkEventOnSpawn ();
|
||||
|
||||
checkObjectStateAfterSpawn ();
|
||||
}
|
||||
}
|
||||
|
||||
public virtual void despawnPoolObject ()
|
||||
{
|
||||
if (usePoolingEnabled) {
|
||||
checkObjectStateBeforeDespawn ();
|
||||
|
||||
checkEventOnDespawn ();
|
||||
|
||||
GKC_PoolingSystem.Despawn (mainPoolGameObject);
|
||||
}
|
||||
}
|
||||
|
||||
public virtual void checkObjectStateBeforeDespawn ()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public virtual void checkObjectStateAfterSpawn ()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public void checkEventOnSpawn ()
|
||||
{
|
||||
if (useEventOnSpawn) {
|
||||
eventOnSpawn.Invoke ();
|
||||
}
|
||||
}
|
||||
|
||||
public void checkEventOnDespawn ()
|
||||
{
|
||||
if (useEventOnDespawn) {
|
||||
eventOnDespawn.Invoke ();
|
||||
}
|
||||
}
|
||||
|
||||
public void setUsePoolingEnabledState (bool state)
|
||||
{
|
||||
usePoolingEnabled = state;
|
||||
}
|
||||
|
||||
public void checkEventsOnEnableOrDisablePoolingManagementOnObject (bool state)
|
||||
{
|
||||
setUsePoolingEnabledState (state);
|
||||
|
||||
if (state) {
|
||||
eventToEnablePoolManagement.Invoke ();
|
||||
} else {
|
||||
eventToDisablePoolManagement.Invoke ();
|
||||
}
|
||||
|
||||
if (!Application.isPlaying) {
|
||||
updateComponent ();
|
||||
}
|
||||
}
|
||||
|
||||
//EDITOR FUNCTIONS
|
||||
public void setUsePoolingEnabledStateFromEditor (bool state)
|
||||
{
|
||||
setUsePoolingEnabledState (state);
|
||||
|
||||
updateComponent ();
|
||||
}
|
||||
|
||||
public void checkEventsOnEnableOrDisablePoolingManagementOnObjectFromEditor (bool state)
|
||||
{
|
||||
checkEventsOnEnableOrDisablePoolingManagementOnObject (state);
|
||||
}
|
||||
|
||||
void updateComponent ()
|
||||
{
|
||||
GKC_Utils.updateComponent (this);
|
||||
|
||||
GKC_Utils.updateDirtyScene ("Update GKC Poolong Element " + gameObject.name, gameObject);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user