// 基本的にVerifyData()は常にtrueなので更新の必要なし
        //protected virtual void Update()
        //{
        //    if (status.IsInitSuccess)
        //    {
        //        var error = !VerifyData();
        //        status.SetRuntimeError(error);
        //        UpdateStatus();

        //        if (status.IsActive)
        //            OnUpdate();
        //    }
        //}

        //=========================================================================================
        /// <summary>
        /// 初期化
        /// 通常はStart()で呼ぶ
        /// </summary>
        /// <param name="vcnt"></param>
        void Init()
        {
            status.updateStatusAction = OnUpdateStatus;
            if (status.IsInitComplete || status.IsInitStart)
            {
                return;
            }
            status.SetInitStart();

            if (VerifyData() == false)
            {
                status.SetInitError();
                return;
            }

            OnInit();
            if (status.IsInitError)
            {
                return;
            }

            status.SetInitComplete();

            status.UpdateStatus();
        }
        // ランタイム時のエラーチェックはパフォーマンスの観点から行わない。
        // 初期化時にはエラーチェックをしているので問題ないはず
        //protected virtual void ManagedUpdate()
        //{
        //    //Debug.Log("ManagedUpdate.");
        //    if (status.IsInitSuccess)
        //    {
        //        var error = VerifyData() != Define.Error.None;
        //        status.SetRuntimeError(error);
        //        UpdateStatus();

        //        if (status.IsActive)
        //            OnUpdate();
        //    }
        //}

        //protected virtual void Update()
        //{
        //    if (status.IsInitSuccess)
        //    {
        //        var error = VerifyData() != Define.Error.None;
        //        status.SetRuntimeError(error);
        //        UpdateStatus();

        //        if (status.IsActive)
        //            OnUpdate();
        //    }
        //}

        //=========================================================================================
        /// <summary>
        /// 初期化
        /// 通常はStart()で呼ぶ
        /// すでに初期化済み、もしくは初期化中ならば何もしない
        /// </summary>
        /// <param name="vcnt"></param>
        public void Init()
        {
            //Develop.Log($"Core.Init():{gameObject.name}");

            status.updateStatusAction = OnUpdateStatus;
            status.disconnectedAction = OnDisconnectedStatus;
            if (status.IsInitComplete || status.IsInitStart)
            {
                return;
            }
            status.SetInitStart();

            // 登録
            MagicaPhysicsManager.Instance.Component.AddComponent(this);

            if (VerifyData() != Define.Error.None)
            {
                status.SetInitError();
                return;
            }

            OnInit();
            if (status.IsInitError)
            {
                return;
            }

            status.SetInitComplete();

            status.UpdateStatus();
        }
Exemplo n.º 3
0
        //=========================================================================================
        /// <summary>
        /// 初期化
        /// 通常はStart()で呼ぶ
        /// </summary>
        /// <param name="vcnt"></param>
        public virtual void Init()
        {
            status.updateStatusAction = OnUpdateStatus;
            if (status.IsInitComplete || status.IsInitStart)
            {
                return;
            }
            status.SetInitStart();

            OnInit();

            // データチェック
            if (VerifyData() != Define.Error.None)
            {
                // error
                status.SetInitError();
                return;
            }

            status.SetInitComplete();

            // 状態更新
            status.UpdateStatus();
        }