Это нормальная идея или "bad design"?
Примерно:
Синтаксис:
Используется csharp
using UnityEngine;
public class Components : MonoBehaviour {
public UICtrl UICtrl;
public AudioCtrl AudioCtrl;
public CombatCtrl CombatCtrl;
public PlayerCtrl PlayerCtrl;
//и так далее
}
public class Components : MonoBehaviour {
public UICtrl UICtrl;
public AudioCtrl AudioCtrl;
public CombatCtrl CombatCtrl;
public PlayerCtrl PlayerCtrl;
//и так далее
}
Синтаксис:
Используется csharp
using UnityEngine;
public class MBehaviourPlusRefs : MonoBehaviour
{
public static UICtrl UICtrl;
public static AudioCtrl AudioCtrl;
public static CombatCtrl CombatCtrl;
public static PlayerCtrl PlayerCtrl;
//и так далее
void Awake()
{
if (GetType() == typeof(MBehaviourPlusRefs))
{
Components c = GetComponent<Components>();
CombatCtrl = c.CombatCtrl ;
UICtrl = c.UICtrl ;
AudioCtrl= c.AudioCtrl;
PlayerCtrl = c.PlayerCtrl;
}
}
}
public class MBehaviourPlusRefs : MonoBehaviour
{
public static UICtrl UICtrl;
public static AudioCtrl AudioCtrl;
public static CombatCtrl CombatCtrl;
public static PlayerCtrl PlayerCtrl;
//и так далее
void Awake()
{
if (GetType() == typeof(MBehaviourPlusRefs))
{
Components c = GetComponent<Components>();
CombatCtrl = c.CombatCtrl ;
UICtrl = c.UICtrl ;
AudioCtrl= c.AudioCtrl;
PlayerCtrl = c.PlayerCtrl;
}
}
}
А остальные классы
Синтаксис:
Используется csharp
public class UICtrl : MBehaviourPlusRefs {}
public class AudioCtrl: MBehaviourPlusRefs {}
public class PlayerCtrl : MBehaviourPlusRefs {}
public class CombatCtrl : MBehaviourPlusRefs {}
public class AudioCtrl: MBehaviourPlusRefs {}
public class PlayerCtrl : MBehaviourPlusRefs {}
public class CombatCtrl : MBehaviourPlusRefs {}