Пример #1
0
 /// Monobehavior function that is called when the attached GameObject
 /// becomes disabled or inactive.
 void OnDisable()
 {
     // If Academy.Dispose has already been called, we don't need to unregister with it.
     // We don't want to even try, because this will lazily create a new Academy!
     if (Academy.IsInitialized)
     {
         Academy.Instance.AgentSendState  -= SendInfo;
         Academy.Instance.DecideAction    -= DecideAction;
         Academy.Instance.AgentAct        -= AgentStep;
         Academy.Instance.AgentForceReset -= _AgentReset;
     }
     NotifyAgentDone();
     m_Brain?.Dispose();
 }
        /// Monobehavior function that is called when the attached GameObject
        /// becomes disabled or inactive.
        void OnDisable()
        {
            var academy = FindObjectOfType <Academy>();

            if (academy != null)
            {
                academy.AgentSetStatus   -= SetStatus;
                academy.AgentResetIfDone -= ResetIfDone;
                academy.AgentSendState   -= SendInfo;
                academy.DecideAction     -= DecideAction;
                academy.AgentAct         -= AgentStep;
                academy.AgentForceReset  -= ForceReset;
            }
            m_Brain?.Dispose();
        }
Пример #3
0
        /// <summary>
        /// Called when the attached <see cref="GameObject"/> becomes disabled and inactive.
        /// </summary>
        protected virtual void OnDisable()
        {
            DemonstrationWriters.Clear();

            // If Academy.Dispose has already been called, we don't need to unregister with it.
            // We don't want to even try, because this will lazily create a new Academy!
            if (Academy.IsInitialized)
            {
                Academy.Instance.AgentIncrementStep -= AgentIncrementStep;
                Academy.Instance.AgentSendState     -= SendInfo;
                Academy.Instance.DecideAction       -= DecideAction;
                Academy.Instance.AgentAct           -= AgentStep;
                Academy.Instance.AgentForceReset    -= _AgentReset;
            }
            NotifyAgentDone(DoneReason.Disabled);
            m_Brain?.Dispose();
            m_Initialized = false;
        }