public static void Main()
Console.WriteLine("Hello World");
Vector3(float x, float y, float z)
Vector3(float x, float y) : this(x, y, 0) {}
Vector3(Vector3 vector) : this(vector.x, vector.y, vector.z) {}
public static Quaternion identity = new Quaternion(0, 0, 0, 0);
Quaternion(float x, float y, float z, float w)
Quaternion(Quaternion quat) : this(quat.x, quat.y, quat.z, quat.w) {}
public string name { get; set; }
public static Object Instantiate(Object prefab) { return prefab; }
public static Object Instantiate(Object prefab, Transform parent) { return prefab; }
public static Object Instantiate(Object prefab, Vector3 position, Quaternion quat) { return prefab; }
public static Object Instantiate(Object prefab, Vector3 position, Quaternion quat, Transform parent) { return prefab; }
public class ScriptableObject : Object {}
public class GameObject : Object
public T GetComponent<T>()
public class Component : Object
private Transform _transform;
public GameObject gameObject { get; set; }
public string tag { get; set; }
public Transform transform
if (_transform == null) _transform = gameObject.GetComponent<Transform>();
public T GetComponent<T>()
public class Behaviour : Component
public bool isEnabled { get; set; }
public class MonoBehaviour : Behaviour
public class Transform : Component
public Transform parent { get; set; }
public void SetParent(Transform t) => parent = t;
public class UnityEventTransform
public System.Action<Transform> Action = default;
public void Invoke(Transform t) => Action?.Invoke(t);
public class SpawnManager : MonoBehaviour
[SerializeField] private Transform _prefab;
public UnityEventTransform OnSpawn = default;
var clone = Instantiate(_prefab) as Transform;
public class UnityEventFloat
public System.Action<float> Action = default;
public void Invoke(float value) => Action?.Invoke(value);
public class Damageable : MonoBehaviour
public UnityEventFloat OnValueChanged { get; private set; } = default;
public Transform Target { get; set; }
public class UI_Bar : MonoBehaviour
[SerializeField] private UI_BarData _barData;
public void OnInit(Transform t)
public void OnInit(HealthBarArgs e)
_barData.Target = e.Target;
e.Damageable.OnValueChanged.Action += Deplete;
public void Deplete(float value) {}
public class HealthBarArgs : EventArgs
public Damageable Damageable;
public HealthBarArgs(Transform t, Damageable d)
public class HealthBarManager : ScriptableObject
[SerializeField] private UI_Bar _prefab;
public void CreateHealthBar(Transform t)
var healthBar = Instantiate(_prefab) as UI_Bar;
public void CreateHealthBar(HealthBarArgs e)
var healthBar = Instantiate(_prefab) as UI_Bar;