Inheritance: MonoBehaviour
コード例 #1
0
 protected virtual void OnDestroy()  // should be called in derived class
 {
     if (isSingletonObject)
     {
         UnitySingleton <T> ._Destroy();
     }
 }
コード例 #2
0
        private Guid SubscribeCore(IEventFilter filter,
                                   DataReceiveEventHandler receiveEventHandler,
                                   out IReceiverChannel channel)
        {
            Guid cookie;

            // создаем канал ответа (интегральный)
            var localChannel = UnitySingleton.Resolve <ITransport>().CreateIntegralChannel();

            channel = (IReceiverChannel)localChannel;

            // создаем кук
            cookie = Guid.NewGuid();

            // подписываемся на событие прихода данных по каналу
            if (receiveEventHandler != null)
            {
                channel.DataReceived += receiveEventHandler;
            }

            // посылаем команду в Blackboard
            _localBlackboard.Subscribe(filter, localChannel as ISenderChannel, cookie);

            return(cookie);
        }
 public void CheckSingletons()
 {
     Logger.LogInfo("!! Singletons: ");
     Logger.LogInfo("    " + UnitySingleton.GetType().Name);
     Logger.LogInfo("    " + Singleton.GetType().Name);
     Logger.LogInfo("    " + LazySingleton.GetType().Name);
 }
コード例 #4
0
 protected virtual void Awake()
 {
     if (isSingletonObject)
     {
         UnitySingleton <T> ._Awake(this as T);
     }
 }
コード例 #5
0
    // The only callbacks
    void OnEnable()
    {
        Debug.Log("UnitySingleton OnEnable");

        if (instance == null)
        {
            instance = this;

            // https://docs.unity3d.com/ScriptReference/HideFlags.html
            // Will...
            // 1. Not show in the hierarchy (HideFlags.HideInHierarchy)
            // 2. Not be saved to the scene ( HideFlags.DontSaveInBuild | HideFlags.DontSaveInEditor)
            // 3. Not be unloaded by Resources.UnloadUnusedAssets (HideFlags.DontUnloadUnusedAsset)
            // HideFlags.HideAndDontSave = HideFlags.DontSaveInBuild | HideFlags.DontSaveInEditor | HideFlags.DontUnloadUnusedAsset;
            instance.hideFlags = HideFlags.HideAndDontSave;
        }
        else if (Instance != this)
        {
            Debug.LogError("A new instance of SingletonExample was created, marking it for destruction.");

            if (Application.isEditor)
            {
                DestroyImmediate(this);
            }
            else
            {
                Destroy(this);
            }
        }
    }
コード例 #6
0
 protected virtual void OnDestroy()
 {
     if (isSingletonObject)
     {
         UnitySingleton <T> ._Destroy();
     }
 }
コード例 #7
0
        public void Awake()
        {
            UnitySingleton <AudioOneShotPlayer> .Register(this);

            this.worldspaceAudioSources = new ObjectPool <UTKAudioSource>(() => this.CreateAudioSource <UTKAudioSource>(this.worldspacePrefab, this.ReturnAudioSource), 250, this.ReturnAudioSource);
            this.proximityAudioSources  = new ObjectPool <ProximityBasedAudio>(() => this.CreateAudioSource <ProximityBasedAudio>(this.proximityBasedPrefab, this.ReturnAudioSource), 250, this.ReturnAudioSource);
            this.nonSpatialAudioSources = new ObjectPool <NonSpatialAudioSource>(() => this.CreateAudioSource <NonSpatialAudioSource>(this.nonSpatialPrefab, this.ReturnAudioSource), 250, this.ReturnAudioSource);
        }
コード例 #8
0
ファイル: Blackboard.cs プロジェクト: pvserg/Blackboard
        /// <summary>
        /// Метод подписки на события журнала.
        /// </summary>
        /// <param name="filter">Фильтр событий.</param>
        /// <param name="channel">Канал передачи событий.</param>
        /// <param name="cookie">Идентификатор подписки.</param>
        void ISrvcBlackboard.Subscribe(IEventFilter filter, ChannelDescription channel, Guid cookie)
        {
            Logger.Debug("ISrvcBlackboard.Subscribe: подписался {0}", cookie);
            // создаем канал
            ISenderChannel ch = channel != null?UnitySingleton.Resolve <ITransport>().CreateSenderChannel(channel) : null;

            _subsribeTask.Run(() => (this as IBlackboard).Subscribe(filter, ch, cookie));
        }
コード例 #9
0
        public void Awake()
        {
            for (int i = 0; i < this.config.Length; i++)
            {
                this.configs.Add(this.config[i].tag, this.config[i]);
            }

            UnitySingleton <DebrisManager> .Register(this);
        }
コード例 #10
0
ファイル: Blackboard.cs プロジェクト: pvserg/Blackboard
 /// <summary>
 /// Метод подписки на события журнала.
 /// </summary>
 /// <param name="filter">Фильтр событий.</param>
 /// <param name="channel">Канал передачи событий.</param>
 /// <param name="cookie">Идентификатор подписки.</param>
 void IBlackboard.Subscribe(IEventFilter filter, ISenderChannel channel, Guid cookie)
 {
     // локальный подписчик
     if (filter.Host == UnitySingleton.Resolve <ITransport>().HostID)
     {
         // добавляем нового подписчика в карту
         _localEventsSubscribers.Add(cookie, filter, channel);
     }
 }
コード例 #11
0
    protected virtual void Awake() // should be called in derived class
    {
        if (isSingletonObject)
        {
            UnitySingleton <T> ._Awake(this as T);

            //Debug.Log( "Awake: " + this.GetType().Name );
        }
    }
コード例 #12
0
ファイル: ReceiveEvent.cs プロジェクト: pvserg/Blackboard
        void StopTracking()
        {
            foreach (var guid in _listCookies2Unsubscribe)
            {
                UnitySingleton.Resolve <IBlackboardWrapper>().Unsubscribe(guid);
            }

            _listCookies2Unsubscribe.Clear();
        }
コード例 #13
0
ファイル: UnitySingleton.cs プロジェクト: LootDigger/The-line
    protected virtual void Awake() // should be called in derived class
    {
        if (isSingletonObject)
        {
#if UNITY_FLASH
            UnitySingleton <T> ._Awake(this);
#else
            UnitySingleton <T> ._Awake(this as T);
#endif
            //Debug.Log( "Awake: " + this.GetType().Name );
        }
    }
コード例 #14
0
ファイル: ReceiveEvent.cs プロジェクト: pvserg/Blackboard
        public void SubscribeEvent(IEnumerable <Guid> guidEventIds, DataReceiveEventHandler handler)
        {
            var filter = new EventFilter();

            filter.Types.AddRange(guidEventIds);

            Guid             guidEventCookie;
            IReceiverChannel eventChannel;

            UnitySingleton.Resolve <IBlackboardWrapper>().Subscribe(filter, out eventChannel, handler, out guidEventCookie);

            _listCookies2Unsubscribe.Add(guidEventCookie);
        }
コード例 #15
0
 void Awake()
 {
     if (instance != null && instance != this)
     {
         Destroy(this.gameObject);
         return;
     }
     else
     {
         instance = this;
     }
     DontDestroyOnLoad(this.gameObject);
 }
コード例 #16
0
 void Awake()
 {
     if (instance != null && instance != this)
     {
         Destroy(this.gameObject);
         return;
     }
     else
     {
         instance = this;
     }
     DontDestroyOnLoad(this.gameObject);
 }
コード例 #17
0
 static int Awake(IntPtr L)
 {
     try
     {
         ToLua.CheckArgsCount(L, 1);
         UnitySingleton <LogRecord> obj = (UnitySingleton <LogRecord>)ToLua.CheckObject <UnitySingleton <LogRecord> >(L, 1);
         obj.Awake();
         return(0);
     }
     catch (Exception e)
     {
         return(LuaDLL.toluaL_exception(L, e));
     }
 }
コード例 #18
0
ファイル: Tester.cs プロジェクト: pvserg/Blackboard
        public Tester()
        {
            var transport = new Transport(Guid.NewGuid());

            UnitySingleton.RegisterInstance(transport);
            UnitySingleton.RegisterInstance <ITransport>(transport);

            var blackboardWrapper = new BlackboardWrapper();

            // регистрируем в Unity
            UnitySingleton.RegisterInstance(blackboardWrapper);
            UnitySingleton.RegisterInstance <IBlackboardWrapper>(blackboardWrapper);

            // подписываемся на таймер генерации события
            GenerationEvent1 += OnGenerationEvent1;
        }
コード例 #19
0
ファイル: Tester.cs プロジェクト: pvserg/Blackboard
        private void OnGenerationEvent1()
        {
            EventGenerationTimer1.Change(Timeout.Infinite, 0);
            try
            {
                ++_eventCount;
                var newTime = DateTime.Now;
                //var eventParams = new List<Event.EventParam>
                //{
                //    new Event.EventParam("%s", "UserEvent"),
                //    new Event.EventParam("%Count", (_eventCount).ToString()),//count
                //    new Event.EventParam("%Time", newTime.ToString(CultureInfo.InvariantCulture))//time
                //};

                var eventData = new EventData("UserEvent", _eventCount, newTime);
                var newEvent  = new Event(EventTypes.UserEvent, TestId, eventData);
                UnitySingleton.Resolve <IBlackboardWrapper>().PublishEvent(newEvent);
            }
            finally
            {
                EventGenerationTimer1.Change(EventGenerationDelay1, EventGenerationDelay1);
            }
        }
コード例 #20
0
    public static Boolean DoesInstanceExist()
    {
        AudioController singleton = UnitySingleton <AudioController> .GetSingleton(false, false);

        return(!Object.Equals(singleton, null));
    }
コード例 #21
0
 /// <summary>
 /// Activates the singleton instance.
 /// </summary>
 /// <remarks>
 /// Call this function if you set an singleton object inactive before ever accessing the <c>Instance</c>. This is
 /// required because Unity does not (yet) offer a way to find inactive game objects.
 /// </remarks>
 static public void ActivateSingletonInstance() //
 {
     UnitySingleton <T> .GetSingleton(true, true);
 }
コード例 #22
0
 void static Main(string[] args)
 {
     UnitySingleton.GetInstance();
 }
コード例 #23
0
ファイル: Blackboard.cs プロジェクト: pvserg/Blackboard
 /// <summary>
 /// Идентификатор хоста.
 /// </summary>
 Guid ISrvcBlackboard.GetHostID()
 {
     Logger.Debug("ISrvcBlackboard.GetHostID: Запросили HostId");
     return(UnitySingleton.Resolve <ITransport>().HostID);
 }
コード例 #24
0
 /// <summary>
 /// Checks if an instance of this MonoBehaviour exists.
 /// </summary>
 /// <returns>
 /// A reference to the instance if it exists, otherwise <c>null</c>
 /// </returns>
 static public T DoesInstanceExist()
 {
     return(UnitySingleton <T> .GetSingleton(false, false));
 }
コード例 #25
0
 private void OnEnable()
 {
     instance = this;
     text     = "Hello World";
 }
コード例 #26
0
 void Awake()
 {
     _instance = this;
 }
コード例 #27
0
ファイル: UnitySingleton.cs プロジェクト: m-hansen/VRtifact
 /// <summary>
 /// Checks if an instance of this MonoBehaviour exists.
 /// </summary>
 public static bool DoesInstanceExist( )
 {
     return(UnitySingleton <T> .GetSingleton(false, null) != null);
 }
コード例 #28
0
 public void Awake()
 {
     UnitySingleton <FirstPersonEntity> .Register(this);
 }
コード例 #29
0
 public void Awake()
 {
     UnitySingleton <ProximityPlayer> .Register(this);
 }
コード例 #30
0
ファイル: UnitySingleton.cs プロジェクト: jitendraameta/Tools
    protected virtual void Awake() // should be called in derived class
    {
        UnitySingleton <T> ._Awake((T)this);

        //Debug.Log( "Awake: " + this.GetType().Name );
    }
コード例 #31
0
ファイル: HUD.cs プロジェクト: communityus-llc/OsFPS
 public void Awake()
 {
     UnitySingleton <HUD> .Register(this);
 }