Example #1
0
 /// <summary>
 /// Check and cancel task.delay
 /// </summary>
 private void CheckJBehaviour()
 {
     for (int i = 0; i < JBehaviours.Count; i++)
     {
         var jb = JBehaviours.ElementAt(i);
         if (jb.Value == null)
         {
             JBehaviours.Remove(jb.Key);
             continue;
         }
         try
         {
             if (jb.Value._gameObject == null)
             {
                 jb.Value.LoopAwaitToken?.Cancel();
                 JBehaviours[jb.Value._instanceID] = null;
                 JBehaviours.Remove(jb.Value._instanceID);
                 i--;
             }
         }
         catch (MissingReferenceException)
         {
             jb.Value.LoopAwaitToken?.Cancel();
             JBehaviours[jb.Value._instanceID] = null;
             JBehaviours.Remove(jb.Value._instanceID);
             i--;
         }
     }
 }
Example #2
0
        /// <summary>
        /// Constuctor
        /// 构造函数
        /// </summary>
        public JBehaviour()
        {
            //添加实例ID
            _instanceID = JBehaviourMgr.Instance.GetJBehaviourInstanceID();
            JBehaviours.Add(_instanceID, this);

            LoopAwaitToken = new CancellationTokenSource();
        }
Example #3
0
            /// <summary>
            /// Get Instance ID for JBehaviour
            /// </summary>
            /// <returns></returns>
            public string GetJBehaviourInstanceID()
            {
                var _instanceID = System.Guid.NewGuid().ToString("N");

                while (JBehaviours.ContainsKey(_instanceID))
                {
                    _instanceID = System.Guid.NewGuid().ToString("N");
                }
                return(_instanceID);
            }
Example #4
0
            /// <summary>
            /// Check and cancel task.delay
            /// </summary>
            private void CheckJBehaviour()
            {
                var ie = JBehaviours.GetEnumerator();

                while (ie.MoveNext())
                {
                    if (ie.Current.Value._gameObject == null)
                    {
                        ie.Current.Value.LoopAwaitToken.Cancel();
                    }
                }
            }
Example #5
0
 /// <summary>
 /// Check and cancel task.delay
 /// </summary>
 private void CheckJBehaviour()
 {
     for (int i = 0; i < JBehaviours.Count; i++)
     {
         var jb = JBehaviours.ElementAt(i);
         if (jb.Value._gameObject == null)
         {
             jb.Value.LoopAwaitToken.Cancel();
             JBehaviours[jb.Value._instanceID] = null;
             JBehaviours.Remove(jb.Value._instanceID);
             i--;
         }
     }
 }
Example #6
0
        /// <summary>
        /// Constuctor
        /// 构造函数
        /// </summary>
        public JBehaviour()
        {
            //启动线程
            if (DestoryListner.ThreadState == System.Threading.ThreadState.Unstarted)
            {
                DestoryListner.Start();
            }

            //添加实例ID
            _instanceID = System.Guid.NewGuid().ToString("N");
            while (JBehaviours.ContainsKey(_instanceID))
            {
                _instanceID = System.Guid.NewGuid().ToString("N");
            }
            JBehaviours.Add(_instanceID, this);
        }
Example #7
0
        /// <summary>
        /// Constuctor
        /// 构造函数
        /// </summary>
        public JBehaviour()
        {
            //启动线程
            if (!Listening)
            {
                Task.Run(ListenDestroy);
                Listening = true;
            }

            //添加实例ID
            _instanceID = System.Guid.NewGuid().ToString("N");
            while (JBehaviours.ContainsKey(_instanceID))
            {
                _instanceID = System.Guid.NewGuid().ToString("N");
            }
            JBehaviours.Add(_instanceID, this);
        }
Example #8
0
 /// <summary>
 /// Constuctor
 /// 构造函数
 /// </summary>
 public JBehaviour()
 {
     //添加实例ID
     _instanceID = JBehaviourMgr.Instance.GetJBehaviourInstanceID();
     JBehaviours.Add(_instanceID, this);
 }