using System; using System.Collections; using UnityEngine; public interface ISDApplication { ISDGameController GameController { get; } } public class SDApplication : MonoBehaviour, ISDApplication { static volatile ISDApplication m_SharedApplication; public static ISDApplication SharedApplication { get { return m_SharedApplication; } } ISDGameController m_GameController; public ISDGameController GameController { get { return m_GameController; } } protected void Awake () { m_SharedApplication = this; GameObject.DontDestroyOnLoad (this.gameObject); } void Start () { InitGame (); LaunchGame (); } void InitGame () { m_GameController = SDGameController.Create (); } public void LaunchGame () { m_GameController.Launch (); } }