Jump to content
Gira

Clase estática y MonoBehaviour

Recommended Posts

buenas, ¿alguien sabe si es posible crear una clase estática, que contenga métodos con funcionalidades de MonoBehaviour, ej: Destoy, Instantiate, GetComponent... , pero que no implemente MonoBehaviour? la idea es guardar luego esos métodos en delegates, pero no quiero crear un Game Object solo para contener el componente ItemActions que contiene esos métodos.

 

La clase que contiene los métodos es ItemActions, luego quiero hacer que Player acceda a ItemActions y guarde esos métodos en leftClickAction y rightClickAction y los ejecute utilizando la interfaz MonoBehaviour de la clase Player.

public static class ItemActions
{
    public ItemDatabase itemDatabase;
  
    public static void CubeSpawner()
    {
        GameObject cube = GameObject.CreatePrimitive(PrimitiveType.Cube);
        cube.transform.position = transform.position; // obviamente transform no existe
        cube.GetComponent<MeshRenderer>().material.color = Color.red;
        Destroy(cube, 1); // y el método Destroy tampoco
    }
}

// en otro Game Object...

public class Player: MonoBehaviour
{
 
  public delegate void Action();
  public Action leftClickAction;
  public Action rightClickAction;
  
  // asignar variables de la clase ItemActions
  leftClickAction += ItemActions.CubeSpawner(); // ?
  rightClickAction += ItemActions.otroMétodo...(); // ?
}

 

Edited by Gira

Share this post


Link to post
Share on other sites

El metodo Destroy esta en la clase Object de UnityEngine, este puede ser utilizado desde cualquier lugar.

UnityEngine.Object.Destroy();

 

Share this post


Link to post
Share on other sites

×
×
  • Create New...