protected void FieldSetNativeSize() { if (MadGUI.Button("Set Native Size")) { var b = (EnergyBarUGUIBase)target; MadUndo.RecordObject2(b.gameObject, "Set Native Size"); b.SetNativeSize(); } }
void FieldSequenceTextures() { if (UseAtlas()) { int size = script.sequenceAtlasTexturesGUID.Length; int nSize = FieldTextureCount(); EditorGUILayout.Space(); FieldBatchTextureSet(); EditorGUILayout.Space(); MadGUI.Indent(() => { if (size != nSize) { MadUndo.RecordObject2(script, "Texture Count Resize"); System.Array.Resize(ref script.sequenceAtlasTexturesGUID, nSize); EditorUtility.SetDirty(script); } if (sequenceAtlasTexturesGUID.arraySize == 0) { ZeroTexturesWarning(); } for (int i = 0; i < sequenceAtlasTexturesGUID.arraySize; ++i) { var element = sequenceAtlasTexturesGUID.GetArrayElementAtIndex(i); FieldAtlasSprite(element, "Texture " + i); } }); } else { int size = script.sequenceTextures.Length; int nSize = FieldTextureCount(); EditorGUILayout.Space(); MadGUI.Indent(() => { if (size != nSize) { MadUndo.RecordObject2(script, "Texture Count Resize"); System.Array.Resize(ref script.sequenceTextures, nSize); EditorUtility.SetDirty(script); } if (sequenceTextures.arraySize == 0) { ZeroTexturesWarning(); } for (int i = 0; i < sequenceTextures.arraySize; ++i) { var element = sequenceTextures.GetArrayElementAtIndex(i); MadGUI.PropertyField(element, "Texture " + i); } }); } }
private void FieldBatchTextureSet() { MadGUI.Info("If your atlas textures have regular names (like part_01, part_02) then you can add them all at once. " + "Just enter here something like 'part_??' where ?? are placeholders for digits, and then press the button below."); nameTemplate = EditorGUILayout.TextField("Name Template", nameTemplate); if (MadGUI.Button("Batch Texture Set", Color.yellow)) { if (EditorUtility.DisplayDialog("Batch Texture Set", "Are you sure that you want to overwrite your texture settings?", "Yes", "No")) { MadUndo.RecordObject2(script, "Batch Texture Set"); var regex = "^" + nameTemplate.Replace("?", "[0-9]") + "$"; var filtered = from i in script.atlas.items where Regex.Match(i.name, regex).Success orderby i.name select i; var filteredArr = filtered.ToArray(); for (int i = 0; i < script.sequenceAtlasTexturesGUID.Length && i < filteredArr.Length; ++i) { script.sequenceAtlasTexturesGUID[i] = filteredArr[i].textureGUID; } } } }