Skip to content

Commit

Permalink
add uninstall
Browse files Browse the repository at this point in the history
  • Loading branch information
coke12103 committed Sep 8, 2021
1 parent a392d89 commit dcea3e5
Showing 1 changed file with 52 additions and 9 deletions.
61 changes: 52 additions & 9 deletions Assets/coke12103/SimpleLight/Editor/SimpleLightGUI.cs
Original file line number Diff line number Diff line change
Expand Up @@ -170,6 +170,10 @@ private void OnGUI(){
Install();
}
EditorGUI.EndDisabledGroup();

if(GUILayout.Button("Uninstall")){
Uninstall();
}
EditorGUI.EndDisabledGroup();
}

Expand Down Expand Up @@ -235,15 +239,10 @@ int CountParams(){
}

void Install(){
Debug.Log("button");

SetupDirs();
SetupDescriptor();
// ここから削除処理
RemoveOldParams();
RemoveOldLeyers();
RemoveOldExParam();
RemoveOldExMenu();
Uninstall();
// ここまで削除処理
// ここから追加処理
CreateAnimatorParams();
Expand All @@ -254,6 +253,18 @@ void Install(){
CreateExMenu();
// ここまで追加処理
SaveAssets();

message = "Install done!";
}

void Uninstall(){
RemoveOldParams();
RemoveOldLeyers();
RemoveOldExParam();
RemoveOldExMenu();
SaveAssets();

message = "Uninstall done!";
}

void CheckInstallCondition(){
Expand Down Expand Up @@ -320,6 +331,15 @@ void SetupDescriptor(){
}

void RemoveOldParams(){
// 新規作成時には絶対にある、削除時にはない場合がある。
if(
target_avatar.baseAnimationLayers[fx_index].isDefault
|| target_avatar.baseAnimationLayers[fx_index].animatorController == null
){
Debug.Log("レイヤーがないのでスキップ");
return;
}

AnimatorController fx_layer = target_avatar.baseAnimationLayers[fx_index].animatorController as AnimatorController;

AnimatorControllerParameter[] orig_params = fx_layer.parameters;
Expand All @@ -344,6 +364,15 @@ void RemoveOldParams(){
}

void RemoveOldLeyers(){
// 新規作成時には絶対にある、削除時にはない場合がある。
if(
target_avatar.baseAnimationLayers[fx_index].isDefault
|| target_avatar.baseAnimationLayers[fx_index].animatorController == null
){
Debug.Log("レイヤーがないのでスキップ");
return;
}

AnimatorController fx_layer = target_avatar.baseAnimationLayers[fx_index].animatorController as AnimatorController;

AnimatorControllerLayer[] orig_layers = fx_layer.layers;
Expand All @@ -368,6 +397,12 @@ void RemoveOldLeyers(){
}

void RemoveOldExParam(){
// 新規作成時には絶対にある、削除時にはない場合がある。
if(target_avatar.expressionParameters == null){
Debug.Log("EX Paramがないのでスキップ");
return;
}

ExpressionParameters ex_param = target_avatar.expressionParameters;

ExpressionParameter[] orig_ex_params = ex_param.parameters;
Expand All @@ -392,6 +427,12 @@ void RemoveOldExParam(){
}

void RemoveOldExMenu(){
// 新規作成時には絶対にある、削除時にはない場合がある。
if(target_avatar.expressionsMenu == null){
Debug.Log("EX Menuがないのでスキップ");
return;
}

ExpressionsMenu ex_menu = target_avatar.expressionsMenu;

int i = 0;
Expand Down Expand Up @@ -833,9 +874,11 @@ void CreateExMenu(){
}

void SaveAssets(){
EditorUtility.SetDirty(target_avatar.baseAnimationLayers[fx_index].animatorController);
EditorUtility.SetDirty(target_avatar.expressionsMenu);
EditorUtility.SetDirty(target_avatar.expressionParameters);
if(target_avatar.baseAnimationLayers[fx_index].animatorController != null) EditorUtility.SetDirty(target_avatar.baseAnimationLayers[fx_index].animatorController);
if(target_avatar.expressionsMenu != null) EditorUtility.SetDirty(target_avatar.expressionsMenu);
if(target_avatar.expressionParameters != null) EditorUtility.SetDirty(target_avatar.expressionParameters);

EditorUtility.SetDirty(target_avatar);

AssetDatabase.SaveAssets();
AssetDatabase.Refresh();
Expand Down

0 comments on commit dcea3e5

Please sign in to comment.