// 基本的に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(); }
//========================================================================================= /// <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(); }