示例#1
0
        //=========================================================================================
        /// <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;
            }
        }
示例#2
0
        //=========================================================================================
        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;
        }
示例#3
0
 /// <summary>
 /// 更新モードを変更します
 /// Change the update mode.
 /// </summary>
 /// <param name="updateMode"></param>
 public void SetUpdateMode(TeamUpdateMode updateMode)
 {
     UpdateMode = updateMode;
 }