//========================================================================================= /// <summary> /// ブレンド率更新 /// </summary> public void UpdateBlend() { if (teamId <= 0) { return; } // ユーザーブレンド率 float blend = UserBlendWeight; // 距離ブレンド率 blend *= setup.DistanceBlendRatio; // 変更チェック blend = Mathf.Clamp01(blend); if (blend != oldBlendRatio) { // チームデータへ反映 MagicaPhysicsManager.Instance.Team.SetBlendRatio(teamId, blend); // コンポーネント有効化判定 SetUserEnable(blend > 0.01f); oldBlendRatio = blend; } // 更新モード if (UpdateMode != oldUpdateMode) { // チームデータへ反映 MagicaPhysicsManager.Instance.Team.SetUpdateMode(TeamId, UpdateMode); oldUpdateMode = UpdateMode; } }
//========================================================================================= void BaseClothInit() { // デフォーマー初期化 int dcount = GetDeformerCount(); for (int i = 0; i < dcount; i++) { var deformer = GetDeformer(i); if (deformer == null) { Status.SetInitError(); return; } // デフォーマーと状態を連動 var component = deformer.Parent as CoreComponent; Status.LinkParentStatus(component.Status); // デフォーマーが親、クロスコンポーネントが子 component.Init(); if (component.Status.IsInitError) { Status.SetInitError(); return; } } if (VerifyData() != Define.Error.None) { Status.SetInitError(); return; } // クロス初期化 ClothInit(); // クロス初期化後の主にワーカーへの登録 WorkerInit(); // 頂点有効化 SetUseVertex(true); // 更新モード記録 oldUpdateMode = UpdateMode; }
/// <summary> /// 更新モードを変更します /// Change the update mode. /// </summary> /// <param name="updateMode"></param> public void SetUpdateMode(TeamUpdateMode updateMode) { UpdateMode = updateMode; }