예제 #1
0
        private void LateUpdate()
        {
            if (paramCustom == null || !ChaControl.loadEnd)
            {
                return;
            }

            //Load init parameters from chara.
            //Dont load if parameters were loaded from extended data.(if endInitLoad=false)
            if (!endInitLoad)
            {
                InitialLoadParams();
            }

            //Controller enabled or diabled
            if (changedControllerEnabled)
            {
                changedControllerEnabled = false;
                //enabled
                if (Enabled)
                {
#if DEBUG
                    BreastPhysicsController.Logger.LogDebug("Controller is enabled.");
#endif
                    if (isEnabledNowBust())
                    {
                        paramBackup.BackupBust(ChaControl.getDynamicBoneBust(ChaInfo.DynamicBoneKind.BreastL));
                        ApplyParamBust();
                    }
                    if (isEnabledNowHip())
                    {
                        paramBackup.BackupHip(ChaControl.getDynamicBoneBust(ChaInfo.DynamicBoneKind.HipL));
                        ApplyParamHip();
                    }
                }
                else //disbaled
                {
#if DEBUG
                    BreastPhysicsController.Logger.LogDebug("Controller is disabled.");
#endif
                    paramBackup.RestoreAll(ChaControl);
                }
                changedInfo.Reset();
            }

            //Changed enabled or params per state
            if (changedInfo.forceChanged)
            {
                if (Enabled && isEnabledNowBust())
                {
                    paramBackup.BackupBust(ChaControl.getDynamicBoneBust(ChaInfo.DynamicBoneKind.BreastL));
                    ApplyParamBust();
                }
                else
                {
                    paramBackup.RestoreBust(ChaControl);
                }
                if (Enabled && isEnabledNowHip())
                {
                    paramBackup.BackupHip(ChaControl.getDynamicBoneBust(ChaInfo.DynamicBoneKind.HipL));
                    ApplyParamHip();
                }
                else
                {
                    paramBackup.RestoreHip(ChaControl);
                }
                changedInfo.Reset();
            }
            else if (changedInfo.changedEnabled)
            {
                if (IsMatchState(changedInfo.kind, changedInfo.coordinate))
                {
                    if (changedInfo.kind == ParamsKind.Naked)
                    {
                        if (Enabled && isEnabledNowBust())
                        {
                            paramBackup.BackupBust(ChaControl.getDynamicBoneBust(ChaInfo.DynamicBoneKind.BreastL));
                            ApplyParamBust();
                        }
                        else
                        {
                            paramBackup.RestoreBust(ChaControl);
                        }
                    }
                    else if ((changedInfo.kind == ParamsKind.Bra || changedInfo.kind == ParamsKind.Tops))
                    {
                        if (Enabled && isEnabledNowBust())
                        {
                            paramBackup.BackupBust(ChaControl.getDynamicBoneBust(ChaInfo.DynamicBoneKind.BreastL));
                            ApplyParamBust();
                        }
                        else
                        {
                            paramBackup.RestoreBust(ChaControl);
                        }
                    }
                    else if (changedInfo.kind == ParamsKind.Hip)
                    {
                        if (Enabled && isEnabledNowHip())
                        {
                            paramBackup.BackupHip(ChaControl.getDynamicBoneBust(ChaInfo.DynamicBoneKind.HipL));
                            ApplyParamHip();
                        }
                        else
                        {
                            paramBackup.RestoreHip(ChaControl);
                        }
                    }
                }
                changedInfo.Reset();
            }
            else if (changedInfo.changedParam) //changed paramters per state
            {
                if (IsMatchState(changedInfo.kind, changedInfo.coordinate) && Enabled)
                {
                    if (changedInfo.kind == ParamsKind.Naked || changedInfo.kind == ParamsKind.Bra || changedInfo.kind == ParamsKind.Tops)
                    {
                        if (isEnabledNowBust())
                        {
                            ApplyParamBust();
                        }
                    }
                    else if (changedInfo.kind == ParamsKind.Hip)
                    {
                        if (isEnabledNowHip())
                        {
                            ApplyParamHip();
                        }
                    }
                }
                changedInfo.Reset();
            }
        }