//===================================================================================================================================== public static GameObject[] GetPrefabList(string strDir, bool bIncludeMesh, bool bRecursively, int nMaxFile, out int nOutFindFile) { ArrayList retArray; int nCount = 0; if (bRecursively) { retArray = GetResourceFileRecursively <GameObject>(strDir, null, nMaxFile, false, NgEnum.PREFAB_TYPE.All, out nOutFindFile); } else { retArray = GetResourceFiles <GameObject>(strDir, null, nMaxFile, false, NgEnum.PREFAB_TYPE.All, out nOutFindFile); } if (bIncludeMesh == false) { while (true) { if (retArray.Count <= nCount) { break; } if (PrefabUtility.GetPrefabType((Object)retArray[nCount]) == PrefabType.ModelPrefab) { // Debug.Log(((GameObject)retArray[nCount]).name); retArray.RemoveAt(nCount); } else { nCount++; } } nOutFindFile = retArray.Count; } return(NgConvert.ToArray <GameObject>(retArray)); }
void AddObjects(string loaddir) { m_LoadDirectory = NgFile.PathSeparatorNormalize(loaddir); m_CurveAniObjects = NgAsset.GetCurvePrefabList(m_LoadDirectory, "", true, FXMakerLayout.m_nMaxPrefabListCount, out m_nObjectCount); ArrayList curveAnis = new ArrayList(); foreach (GameObject obj in m_CurveAniObjects) { if (obj.GetComponent <NcCurveAnimation>() != null && obj.name.Contains(FxmFolderPopup_NcInfoCurve.m_NcInfoCurve_FileKeyword) == false) { curveAnis.Add(obj); } } m_CurveAniObjects = NgConvert.ToArray <GameObject>(curveAnis); if (m_CurveAniObjects == null) { m_CurveAniObjects = new GameObject[0]; } m_nObjectCount = m_CurveAniObjects.Length; m_ObjectContents = new GUIContent[m_nObjectCount]; // Current Select if (m_SelCurveAniObject != null) { for (int n = 0; n < m_nObjectCount; n++) { if (m_CurveAniObjects[n] == m_SelCurveAniObject) { m_nObjectIndex = n; } } } BuildContents(); }
void UpdateLines() { bool bParticle = (IsLegacy() || IsShuriken()); if ((bParticle == false) && (m_BaseTrans.GetComponent <MeshFilter>() == null || m_BaseTrans.GetComponent <MeshFilter>().mesh == null)) { m_bWireframe = false; return; } ArrayList linesArray = new ArrayList(); Mesh mesh; if (bParticle) { mesh = NgSerialized.GetParticleMesh(GetParticleComponent()); m_bWorldParticle = NgSerialized.GetSimulationSpaceWorld(m_BaseTrans); } else { mesh = m_BaseTrans.GetComponent <MeshFilter>().mesh; } if (mesh != null) { Vector3[] vertices = mesh.vertices; int[] triangles = mesh.triangles; for (int i = 0; i < triangles.Length / 3; i++) { linesArray.Add(vertices[triangles[i * 3]]); linesArray.Add(vertices[triangles[i * 3 + 1]]); linesArray.Add(vertices[triangles[i * 3 + 2]]); } m_lines = NgConvert.ToArray <Vector3>(linesArray); } }
protected override void LoadGroups() { if (m_nProjectCount <= 0) { return; } string[] groupStrings; if (m_bOnlyCurve) { const int cnt = 4; m_nGroupCount = cnt; groupStrings = new string[cnt] { "All", "Low", "Middle", "High" }; } else { if (m_bSaveDialog) { m_nGroupCount = 1; groupStrings = new string[m_nGroupCount]; groupStrings[0] = m_OriCurveInfo.m_ApplyType.ToString(); } else { // Load GroupName m_nGroupCount = NcCurveAnimation.NcInfoCurve.m_TypeName.Length; groupStrings = new string[m_nGroupCount]; Array.Copy(NcCurveAnimation.NcInfoCurve.m_TypeName, groupStrings, m_nGroupCount); ArrayUtility.Insert <string>(ref groupStrings, 0, "All"); m_nGroupCount++; } } m_GroupFolderContents = NgConvert.StringsToContents(groupStrings); }
public override void OnInspectorGUI() { AddScriptNameField(m_Sel); int nClickIndex = -1; int nClickButton = 0; Rect rect; int nLeftWidth = 34; int nAddHeight = 30; int nDelWidth = 35; int nLineHeight = 18; int nSpriteHeight = nLeftWidth; List <NcSpriteFactory.NcSpriteNode> spriteList = m_Sel.m_SpriteList; m_FxmPopupManager = GetFxmPopupManager(); // -------------------------------------------------------------- bool bClickButton = false; EditorGUI.BeginChangeCheck(); { m_UndoManager.CheckUndo(); // -------------------------------------------------------------- m_Sel.m_fUserTag = EditorGUILayout.FloatField(GetCommonContent("m_fUserTag"), m_Sel.m_fUserTag); EditorGUILayout.Space(); m_Sel.m_SpriteType = (NcSpriteFactory.SPRITE_TYPE)EditorGUILayout.EnumPopup(GetHelpContent("m_SpriteType"), m_Sel.m_SpriteType); // -------------------------------------------------------------- if (m_Sel.m_SpriteType == NcSpriteFactory.SPRITE_TYPE.NcSpriteAnimation && m_Sel.gameObject.GetComponent("NcSpriteAnimation") == null) { rect = EditorGUILayout.BeginHorizontal(GUILayout.Height(m_fButtonHeight)); { if (FXMakerLayout.GUIButton(rect, GetHelpContent("Add NcSpriteAnimation Component"), true)) { m_Sel.gameObject.AddComponent("NcSpriteAnimation"); } GUILayout.Label(""); } EditorGUILayout.EndHorizontal(); } // -------------------------------------------------------------- if (m_Sel.m_SpriteType == NcSpriteFactory.SPRITE_TYPE.NcSpriteTexture && m_Sel.gameObject.GetComponent("NcSpriteTexture") == null) { rect = EditorGUILayout.BeginHorizontal(GUILayout.Height(m_fButtonHeight)); { if (FXMakerLayout.GUIButton(rect, GetHelpContent("Add NcSpriteTexture Component"), true)) { m_Sel.gameObject.AddComponent("NcSpriteTexture"); } GUILayout.Label(""); } EditorGUILayout.EndHorizontal(); } EditorGUILayout.Space(); // -------------------------------------------------------------- int nSelIndex = EditorGUILayout.IntSlider(GetHelpContent("m_nCurrentIndex"), m_Sel.m_nCurrentIndex, 0, (spriteList == null ? 0 : spriteList.Count - 1)); float fUvScale = EditorGUILayout.FloatField(GetHelpContent("m_fUvScale"), m_Sel.m_fUvScale); if (m_Sel.m_nCurrentIndex != nSelIndex || fUvScale != m_Sel.m_fUvScale) { m_Sel.m_nCurrentIndex = nSelIndex; m_Sel.m_fUvScale = fUvScale; m_Sel.SetSprite(nSelIndex, false); } // Rebuild Check EditorGUI.BeginChangeCheck(); m_Sel.m_bTrimBlack = EditorGUILayout.Toggle(GetHelpContent("m_bTrimBlack"), m_Sel.m_bTrimBlack); m_Sel.m_bTrimAlpha = EditorGUILayout.Toggle(GetHelpContent("m_bTrimAlpha"), m_Sel.m_bTrimAlpha); m_Sel.m_nMaxAtlasTextureSize = EditorGUILayout.IntPopup("nMaxAtlasTextureSize", m_Sel.m_nMaxAtlasTextureSize, NgEnum.m_TextureSizeStrings, NgEnum.m_TextureSizeIntters); // m_Sel.m_AtlasMaterial = (Material)EditorGUILayout.ObjectField(GetHelpContent("m_AtlasMaterial") , m_Sel.m_AtlasMaterial, typeof(Material), false); if (EditorGUI.EndChangeCheck()) { m_Sel.m_bNeedRebuild = true; } // check // Add Button ------------------------------------------------------ EditorGUILayout.Space(); rect = EditorGUILayout.BeginHorizontal(GUILayout.Height(nAddHeight * 2)); { Rect lineRect = FXMakerLayout.GetInnerVerticalRect(rect, 2, 0, 1); if (GUI.Button(FXMakerLayout.GetInnerHorizontalRect(lineRect, 3, 0, 1), GetHelpContent("Add Sprite"))) { bClickButton = true; m_Sel.AddSpriteNode(); } bool bHighLight = m_Sel.m_bNeedRebuild; if (bHighLight) { FXMakerLayout.GUIColorBackup(FXMakerLayout.m_ColorHelpBox); } if (GUI.Button(FXMakerLayout.GetInnerHorizontalRect(lineRect, 3, 1, 1), GetHelpContent("Build Sprite"))) { #if UNITY_WEBPLAYER Debug.LogError("In WEB_PLAYER mode, you cannot run the FXMaker."); Debug.Break(); #else bClickButton = true; CreateSpriteAtlas(m_Sel.renderer.sharedMaterial); m_Sel.m_bNeedRebuild = false; #endif } if (bHighLight) { FXMakerLayout.GUIColorRestore(); } if (FXMakerLayout.GUIButton(FXMakerLayout.GetInnerHorizontalRect(lineRect, 3, 2, 1), GetHelpContent("Clear All"), (0 < m_Sel.GetSpriteNodeCount()))) { bClickButton = true; if (m_FxmPopupManager != null) { m_FxmPopupManager.CloseNcPrefabPopup(); } m_Sel.ClearAllSpriteNode(); } lineRect = FXMakerLayout.GetInnerVerticalRect(rect, 2, 1, 1); if (FXMakerLayout.GUIButton(FXMakerLayout.GetInnerHorizontalRect(lineRect, 3, 0, 1), GetHelpContent("Sequence"), (0 < m_Sel.GetSpriteNodeCount()))) { m_Sel.m_bSequenceMode = true; bClickButton = true; m_Sel.SetSprite(0, false); } if (FXMakerLayout.GUIButton(FXMakerLayout.GetInnerHorizontalRect(lineRect, 3, 1, 1), GetHelpContent("NewMaterial"), true)) { Material newMat = new Material(m_Sel.renderer.sharedMaterial); string matPath = AssetDatabase.GetAssetPath(m_Sel.renderer.sharedMaterial); NgMaterial.SaveMaterial(newMat, NgFile.TrimFilenameExt(matPath), m_Sel.name); m_Sel.renderer.sharedMaterial = newMat; // m_Sel.renderer.sharedMaterial = (Material)AssetDatabase.LoadAssetAtPath(savePath, typeof(Material)); } GUILayout.Label(""); } EditorGUILayout.EndHorizontal(); // Select ShotType ------------------------------------------------- // showType = (NcSpriteFactory.SHOW_TYPE)EditorGUILayout.EnumPopup (GetHelpContent("m_ShowType") , showType); // -------------------------------------------------------------- EditorGUILayout.Space(); NcSpriteFactory.SHOW_TYPE showType = (NcSpriteFactory.SHOW_TYPE)EditorPrefs.GetInt("NcSpriteFactory.SHOW_TYPE", 0); rect = EditorGUILayout.BeginHorizontal(GUILayout.Height(nLineHeight)); { showType = FXMakerLayout.GUIToggle(FXMakerLayout.GetInnerHorizontalRect(rect, 5, 0, 1), showType == NcSpriteFactory.SHOW_TYPE.NONE, GetHelpContent("NONE"), true) ? NcSpriteFactory.SHOW_TYPE.NONE : showType; showType = FXMakerLayout.GUIToggle(FXMakerLayout.GetInnerHorizontalRect(rect, 5, 1, 1), showType == NcSpriteFactory.SHOW_TYPE.ALL, GetHelpContent("ALL"), true) ? NcSpriteFactory.SHOW_TYPE.ALL : showType; if (m_Sel.m_SpriteType == NcSpriteFactory.SPRITE_TYPE.NcSpriteAnimation) { showType = FXMakerLayout.GUIToggle(FXMakerLayout.GetInnerHorizontalRect(rect, 5, 2, 1), showType == NcSpriteFactory.SHOW_TYPE.SPRITE, GetHelpContent("SPRITE"), true) ? NcSpriteFactory.SHOW_TYPE.SPRITE : showType; showType = FXMakerLayout.GUIToggle(FXMakerLayout.GetInnerHorizontalRect(rect, 5, 3, 1), showType == NcSpriteFactory.SHOW_TYPE.ANIMATION, GetHelpContent("ANIMATION"), true) ? NcSpriteFactory.SHOW_TYPE.ANIMATION : showType; } showType = FXMakerLayout.GUIToggle(FXMakerLayout.GetInnerHorizontalRect(rect, 5, 4, 1), showType == NcSpriteFactory.SHOW_TYPE.EFFECT, GetHelpContent("EFFECT"), true) ? NcSpriteFactory.SHOW_TYPE.EFFECT : showType; GUILayout.Label(""); } EditorGUILayout.EndHorizontal(); EditorPrefs.SetInt("NcSpriteFactory.SHOW_TYPE", ((int)showType)); // Show Option ------------------------------------------------- EditorGUILayout.Space(); rect = EditorGUILayout.BeginHorizontal(GUILayout.Height(nLineHeight)); { m_Sel.m_bShowEffect = FXMakerLayout.GUIToggle(FXMakerLayout.GetInnerHorizontalRect(rect, 3, 0, 1), m_Sel.m_bShowEffect, GetHelpContent("m_bShowEffect"), true); if (m_Sel.m_SpriteType == NcSpriteFactory.SPRITE_TYPE.NcSpriteAnimation) { m_Sel.m_bTestMode = FXMakerLayout.GUIToggle(FXMakerLayout.GetInnerHorizontalRect(rect, 3, 1, 1), m_Sel.m_bTestMode, GetHelpContent("m_bTestMode"), true); m_Sel.m_bSequenceMode = FXMakerLayout.GUIToggle(FXMakerLayout.GetInnerHorizontalRect(rect, 3, 2, 1), m_Sel.m_bSequenceMode, GetHelpContent("m_bSequenceMode"), true); } GUILayout.Label(""); } EditorGUILayout.EndHorizontal(); // Node List ------------------------------------------------------ for (int n = 0; n < (spriteList != null ? spriteList.Count : 0); n++) { EditorGUILayout.Space(); EditorGUI.BeginChangeCheck(); // Load Texture --------------------------------------------------------- Texture2D selTexture = null; if (spriteList[n].m_TextureGUID != "") { selTexture = (Texture2D)AssetDatabase.LoadAssetAtPath(AssetDatabase.GUIDToAssetPath(spriteList[n].m_TextureGUID), typeof(Texture2D)); } // Enabled -------------------------------------------------------------- rect = EditorGUILayout.BeginHorizontal(GUILayout.Height(nLineHeight)); { Rect subRect; EditorGUI.BeginChangeCheck(); // enable spriteList[n].m_bIncludedAtlas = GUILayout.Toggle(spriteList[n].m_bIncludedAtlas, "Idx", GUILayout.Width(nLeftWidth)); // change index subRect = rect; subRect.x += nLeftWidth; subRect.width = nLineHeight * 2; int newPos = EditorGUI.IntPopup(subRect, n, NgConvert.GetIntStrings(0, spriteList.Count), NgConvert.GetIntegers(0, spriteList.Count)); if (newPos != n) { NcSpriteFactory.NcSpriteNode node = spriteList[n]; m_Sel.m_SpriteList.Remove(node); m_Sel.m_SpriteList.Insert(newPos, node); return; } if (EditorGUI.EndChangeCheck()) { m_Sel.m_bNeedRebuild = true; } // name subRect = rect; subRect.x += nLeftWidth + nLineHeight * 2; subRect.width -= nLeftWidth + nLineHeight * 2; spriteList[n].m_TextureName = selTexture == null ? "" : selTexture.name; GUI.Label(subRect, (selTexture == null ? "" : "(" + spriteList[n].m_nFrameCount + ") " + selTexture.name)); GUI.Box(subRect, ""); GUI.Box(rect, ""); // delete if (GUI.Button(new Rect(subRect.x + subRect.width - nDelWidth, subRect.y, nDelWidth, subRect.height), GetHelpContent("Del"))) { m_Sel.m_bNeedRebuild = true; bClickButton = true; if (m_FxmPopupManager != null) { m_FxmPopupManager.CloseNcPrefabPopup(); } m_Sel.DeleteSpriteNode(n); return; } } EditorGUILayout.EndHorizontal(); // SpriteName MaxAlpha ----------------------------------------------------------- rect = EditorGUILayout.BeginHorizontal(GUILayout.Height(nLineHeight)); { GUILayout.Label("", GUILayout.Width(nLineHeight)); GUI.Label(FXMakerLayout.GetInnerHorizontalRect(rect, 7, 0, 2), "Name,fMaxAlpha"); spriteList[n].m_SpriteName = EditorGUI.TextField(FXMakerLayout.GetInnerHorizontalRect(rect, 7, 2, 4), spriteList[n].m_SpriteName); spriteList[n].m_fMaxTextureAlpha = EditorGUI.FloatField(FXMakerLayout.GetInnerHorizontalRect(rect, 7, 6, 1), spriteList[n].m_fMaxTextureAlpha); } EditorGUILayout.EndHorizontal(); // Texture -------------------------------------------------------------- rect = EditorGUILayout.BeginHorizontal(GUILayout.Height(nSpriteHeight / (selTexture == null ? 2 : 1))); { GUILayout.Label("", GUILayout.Width(nLeftWidth)); Rect subRect = rect; subRect.width = nLeftWidth; FXMakerLayout.GetOffsetRect(rect, 0, 5, 0, -5); EditorGUI.BeginChangeCheck(); selTexture = (Texture2D)EditorGUI.ObjectField(subRect, GetHelpContent(""), selTexture, typeof(Texture2D), false); if (EditorGUI.EndChangeCheck()) { if (selTexture != null) { spriteList[n].m_TextureGUID = AssetDatabase.AssetPathToGUID(AssetDatabase.GetAssetPath(selTexture)); } m_Sel.m_bNeedRebuild = true; } // draw texture subRect = FXMakerLayout.GetOffsetRect(rect, nLeftWidth + 4, 0, 0, -4); Rect drawRect = FXMakerLayout.GetOffsetRect(subRect, 0, 0, -nDelWidth, 0); if (selTexture != null) { // draw texture GUI.DrawTexture(drawRect, selTexture, ScaleMode.ScaleToFit, true, selTexture.width / selTexture.height); // draw tile float fDrawRatio = drawRect.width / drawRect.height; float fImageRatio = selTexture.width / selTexture.height; if (fDrawRatio < fImageRatio) { drawRect = FXMakerLayout.GetVOffsetRect(drawRect, drawRect.height * -(1 - (fDrawRatio / fImageRatio)) / 2); } else { drawRect = FXMakerLayout.GetHOffsetRect(drawRect, drawRect.width * -(1 - (fImageRatio / fDrawRatio)) / 2); } float tileWidth = (drawRect.width / spriteList[n].m_nTilingX); float tileHeight = (drawRect.height / spriteList[n].m_nTilingY); for (int tn = spriteList[n].m_nStartFrame; tn < Mathf.Min(spriteList[n].m_nStartFrame + spriteList[n].m_nFrameCount, spriteList[n].m_nTilingX * spriteList[n].m_nTilingY); tn++) { int posx = tn % spriteList[n].m_nTilingX; int posy = tn / spriteList[n].m_nTilingX; Rect tileRect = new Rect(drawRect.x + posx * tileWidth, drawRect.y + posy * tileHeight, tileWidth, tileHeight); NgGUIDraw.DrawBox(FXMakerLayout.GetOffsetRect(tileRect, -1), Color.green, 1, false); } } // delete if (GUI.Button(new Rect(subRect.x + subRect.width - nDelWidth, subRect.y, nDelWidth, subRect.height), GetHelpContent("Rmv"))) { spriteList[n].SetEmpty(); } GUI.Box(rect, ""); } EditorGUILayout.EndHorizontal(); // Change selIndex Event e = Event.current; if (e.type == EventType.MouseDown && rect.Contains(e.mousePosition)) { nClickIndex = n; nClickButton = e.button; } // ----------------------------------------------------------------------------------------------------------------------------------------------- if (spriteList[n].IsEmptyTexture() == false) { // Frame tile rect = EditorGUILayout.BeginHorizontal(GUILayout.Height(nLineHeight)); { GUILayout.Label("", GUILayout.Width(nLineHeight)); GUI.Label(FXMakerLayout.GetInnerHorizontalRect(rect, 8, 0, 4), "nTileXY,Start,Count"); // m_nTilingX, m_nTilingY EditorGUI.BeginChangeCheck(); spriteList[n].m_nTilingX = EditorGUI.IntField(FXMakerLayout.GetInnerHorizontalRect(rect, 8, 4, 1), spriteList[n].m_nTilingX); spriteList[n].m_nTilingY = EditorGUI.IntField(FXMakerLayout.GetInnerHorizontalRect(rect, 8, 5, 1), spriteList[n].m_nTilingY); SetMinValue(ref spriteList[n].m_nTilingX, 1); SetMinValue(ref spriteList[n].m_nTilingY, 1); if (EditorGUI.EndChangeCheck()) { spriteList[n].m_nFrameCount = spriteList[n].m_nTilingX * spriteList[n].m_nTilingY - spriteList[n].m_nStartFrame; m_Sel.m_bNeedRebuild = true; } // m_nStartFrame, m_nFrameCount EditorGUI.BeginChangeCheck(); spriteList[n].m_nStartFrame = EditorGUI.IntField(FXMakerLayout.GetInnerHorizontalRect(rect, 8, 6, 1), spriteList[n].m_nStartFrame); spriteList[n].m_nFrameCount = EditorGUI.IntField(FXMakerLayout.GetInnerHorizontalRect(rect, 8, 7, 1), spriteList[n].m_nFrameCount); SetMaxValue(ref spriteList[n].m_nStartFrame, spriteList[n].m_nTilingX * spriteList[n].m_nTilingY - 1); SetMinValue(ref spriteList[n].m_nStartFrame, 0); SetMaxValue(ref spriteList[n].m_nFrameCount, spriteList[n].m_nTilingX * spriteList[n].m_nTilingY - spriteList[n].m_nStartFrame); SetMinValue(ref spriteList[n].m_nFrameCount, 1); if (EditorGUI.EndChangeCheck()) { m_Sel.m_bNeedRebuild = true; } } EditorGUILayout.EndHorizontal(); // SpriteNode ---------------------------------------------------------- if (bClickButton == false) { if (m_Sel.m_SpriteType == NcSpriteFactory.SPRITE_TYPE.NcSpriteAnimation && (showType == NcSpriteFactory.SHOW_TYPE.ALL || showType == NcSpriteFactory.SHOW_TYPE.SPRITE)) { rect = EditorGUILayout.BeginHorizontal(GUILayout.Height(nLineHeight)); { GUILayout.Label("", GUILayout.Width(nLineHeight)); GUI.Label(FXMakerLayout.GetInnerHorizontalRect(rect, 8, 0, 4), "Loop,Start,FCnt,LCnt"); bool bOldLoop = spriteList[n].m_bLoop; spriteList[n].m_bLoop = EditorGUI.Toggle(FXMakerLayout.GetInnerHorizontalRect(rect, 8, 4, 1), spriteList[n].m_bLoop); if (!bOldLoop && spriteList[n].m_bLoop) { spriteList[n].m_nLoopStartFrame = 0; spriteList[n].m_nLoopFrameCount = spriteList[n].m_nFrameCount; spriteList[n].m_nLoopingCount = 0; } if (spriteList[n].m_bLoop) { spriteList[n].m_nLoopStartFrame = EditorGUI.IntField(FXMakerLayout.GetInnerHorizontalRect(rect, 8, 5, 1), spriteList[n].m_nLoopStartFrame); spriteList[n].m_nLoopFrameCount = EditorGUI.IntField(FXMakerLayout.GetInnerHorizontalRect(rect, 8, 6, 1), spriteList[n].m_nLoopFrameCount); spriteList[n].m_nLoopingCount = EditorGUI.IntField(FXMakerLayout.GetInnerHorizontalRect(rect, 8, 7, 1), spriteList[n].m_nLoopingCount); } // check SetMaxValue(ref spriteList[n].m_nLoopStartFrame, spriteList[n].m_nFrameCount - 1); SetMinValue(ref spriteList[n].m_nLoopStartFrame, 0); SetMaxValue(ref spriteList[n].m_nLoopFrameCount, spriteList[n].m_nFrameCount - spriteList[n].m_nLoopStartFrame); SetMinValue(ref spriteList[n].m_nLoopingCount, 0); } EditorGUILayout.EndHorizontal(); spriteList[n].m_fTime = EditorGUILayout.Slider(GetHelpContent("m_fTime"), spriteList[n].m_nFrameCount / spriteList[n].m_fFps, 0, 5, null); spriteList[n].m_fFps = EditorGUILayout.Slider(GetHelpContent("m_fFps"), spriteList[n].m_nFrameCount / spriteList[n].m_fTime, 50, 1, null); } if (m_Sel.m_SpriteType == NcSpriteFactory.SPRITE_TYPE.NcSpriteAnimation && (showType == NcSpriteFactory.SHOW_TYPE.ALL || showType == NcSpriteFactory.SHOW_TYPE.ANIMATION)) { spriteList[n].m_nNextSpriteIndex = EditorGUILayout.Popup("m_nNextSpriteIndex", spriteList[n].m_nNextSpriteIndex + 1, GetSpriteNodeNames()) - 1; if (0 <= spriteList[n].m_nNextSpriteIndex) { spriteList[n].m_nTestMode = EditorGUILayout.Popup("m_nTestMode", spriteList[n].m_nTestMode, NgConvert.ContentsToStrings(FxmTestControls.GetHcEffectControls_Trans(FxmTestControls.AXIS.Z)), GUILayout.MaxWidth(Screen.width)); spriteList[n].m_fTestSpeed = EditorGUILayout.FloatField("m_fTestSpeed", spriteList[n].m_fTestSpeed); SetMinValue(ref spriteList[n].m_fTestSpeed, 0.01f); } } if (showType == NcSpriteFactory.SHOW_TYPE.ALL || showType == NcSpriteFactory.SHOW_TYPE.EFFECT) { EditorGUILayout.Separator(); // char effect ------------------------------------------------------------- spriteList[n].m_EffectPrefab = (GameObject)EditorGUILayout.ObjectField(GetHelpContent("m_EffectPrefab"), spriteList[n].m_EffectPrefab, typeof(GameObject), false, null); rect = EditorGUILayout.BeginHorizontal(GUILayout.Height(m_fButtonHeight * 0.7f)); { if (FXMakerLayout.GUIButton(FXMakerLayout.GetInnerHorizontalRect(rect, 2, 0, 1), GetHelpContent("SelEffect"), (m_FxmPopupManager != null))) { m_FxmPopupManager.ShowSelectPrefabPopup(m_Sel, n, 0, true); } if (FXMakerLayout.GUIButton(FXMakerLayout.GetInnerHorizontalRect(rect, 2, 1, 1), GetHelpContent("ClearEffect"), (spriteList[n].m_EffectPrefab != null))) { bClickButton = true; spriteList[n].m_EffectPrefab = null; } GUILayout.Label(""); } EditorGUILayout.EndHorizontal(); if (spriteList[n].m_EffectPrefab != null) { if (m_Sel.m_SpriteType == NcSpriteFactory.SPRITE_TYPE.NcSpriteAnimation) { spriteList[n].m_nEffectFrame = EditorGUILayout.IntSlider(GetHelpContent("m_nEffectFrame"), spriteList[n].m_nEffectFrame, 0, spriteList[n].m_nFrameCount, null); rect = EditorGUILayout.BeginHorizontal(GUILayout.Height(nLineHeight)); { GUILayout.Label("", GUILayout.Width(nLineHeight)); GUI.Label(FXMakerLayout.GetInnerHorizontalRect(rect, 4, 0, 2), "bOnlyFirst,bEffDetach"); spriteList[n].m_bEffectOnlyFirst = EditorGUI.Toggle(FXMakerLayout.GetInnerHorizontalRect(rect, 4, 2, 1), spriteList[n].m_bEffectOnlyFirst); spriteList[n].m_bEffectDetach = EditorGUI.Toggle(FXMakerLayout.GetInnerHorizontalRect(rect, 4, 3, 1), spriteList[n].m_bEffectDetach); } EditorGUILayout.EndHorizontal(); } rect = EditorGUILayout.BeginHorizontal(GUILayout.Height(nLineHeight)); { GUILayout.Label("", GUILayout.Width(nLineHeight)); GUI.Label(FXMakerLayout.GetInnerHorizontalRect(rect, 4, 0, 2), "fSpeed, fScale"); spriteList[n].m_fEffectSpeed = EditorGUI.FloatField(FXMakerLayout.GetInnerHorizontalRect(rect, 4, 2, 1), spriteList[n].m_fEffectSpeed); spriteList[n].m_fEffectScale = EditorGUI.FloatField(FXMakerLayout.GetInnerHorizontalRect(rect, 4, 3, 1), spriteList[n].m_fEffectScale); } EditorGUILayout.EndHorizontal(); spriteList[n].m_EffectPos = EditorGUILayout.Vector3Field("m_EffectPos", spriteList[n].m_EffectPos, null); spriteList[n].m_EffectRot = EditorGUILayout.Vector3Field("m_EffectRot", spriteList[n].m_EffectRot, null); SetMinValue(ref spriteList[n].m_fEffectScale, 0.001f); } EditorGUILayout.Space(); // char sound ------------------------------------------------------------- spriteList[n].m_AudioClip = (AudioClip)EditorGUILayout.ObjectField(GetHelpContent("m_AudioClip"), spriteList[n].m_AudioClip, typeof(AudioClip), false, null); rect = EditorGUILayout.BeginHorizontal(GUILayout.Height(m_fButtonHeight * 0.7f)); { // if (FXMakerLayout.GUIButton(FXMakerLayout.GetInnerHorizontalRect(rect, 2, 0, 1), GetHelpContent("SelAudio"), (m_FxmPopupManager != null))) // m_FxmPopupManager.ShowSelectAudioClipPopup(m_Sel); if (FXMakerLayout.GUIButton(FXMakerLayout.GetInnerHorizontalRect(rect, 2, 1, 1), GetHelpContent("ClearAudio"), (spriteList[n].m_AudioClip != null))) { bClickButton = true; spriteList[n].m_AudioClip = null; } GUILayout.Label(""); } EditorGUILayout.EndHorizontal(); if (spriteList[n].m_AudioClip != null) { if (m_Sel.m_SpriteType == NcSpriteFactory.SPRITE_TYPE.NcSpriteAnimation) { spriteList[n].m_nSoundFrame = EditorGUILayout.IntSlider(GetHelpContent("m_nSoundFrame"), spriteList[n].m_nSoundFrame, 0, spriteList[n].m_nFrameCount, null); spriteList[n].m_bSoundOnlyFirst = EditorGUILayout.Toggle(GetHelpContent("m_bSoundOnlyFirst"), spriteList[n].m_bSoundOnlyFirst); } spriteList[n].m_bSoundLoop = EditorGUILayout.Toggle(GetHelpContent("m_bSoundLoop"), spriteList[n].m_bSoundLoop); spriteList[n].m_fSoundVolume = EditorGUILayout.Slider(GetHelpContent("m_fSoundVolume"), spriteList[n].m_fSoundVolume, 0, 1.0f, null); spriteList[n].m_fSoundPitch = EditorGUILayout.Slider(GetHelpContent("m_fSoundPitch"), spriteList[n].m_fSoundPitch, -3, 3.0f, null); } } } } if (EditorGUI.EndChangeCheck()) { nClickIndex = n; } selTexture = null; } // Select Node ---------------------------------------------------- if (0 <= nClickIndex) { m_Sel.SetSprite(nClickIndex, false); if (m_Sel.m_bTestMode && 0 <= spriteList[nClickIndex].m_nTestMode && GetFXMakerMain()) { GetFXMakerMain().GetFXMakerControls().SetTransIndex(spriteList[nClickIndex].m_nTestMode, (4 <= spriteList[nClickIndex].m_nTestMode ? 1.8f : 1.0f), spriteList[nClickIndex].m_fTestSpeed); } // Rotate if (nClickButton == 1) { m_Sel.transform.Rotate(0, 180, 0); } nClickIndex = -1; bClickButton = true; } m_UndoManager.CheckDirty(); } // -------------------------------------------------------------- if ((EditorGUI.EndChangeCheck() || bClickButton) && GetFXMakerMain()) { OnEditComponent(); } // --------------------------------------------------------------------- if (GUI.tooltip != "") { m_LastTooltip = GUI.tooltip; } HelpBox(m_LastTooltip); }
protected override void LoadObjects() { ArrayList infoList = new ArrayList(); m_CurveInfos = null; m_ObjectContents = null; m_nObjectCount = 0; m_nObjectIndex = -1; if (m_nGroupCount <= 0) { return; } GameObject currentObj = m_CurveAniObjects[m_nProjectIndex]; if (m_bOnlyCurve) { NcCurveAnimation curveAnis = currentObj.GetComponent <NcCurveAnimation>(); if (curveAnis != null) { List <NcCurveAnimation.NcInfoCurve> curveInfoList = curveAnis.m_CurveInfoList; for (int n = 0; n < curveInfoList.Count; n++) { curveInfoList[n].m_nTag = n; if (m_nGroupIndex == 0) { infoList.Add(curveInfoList[n]); } else { if (m_nGroupIndex == curveInfoList[n].m_nSortGroup) // 1, 2, 3 { infoList.Add(curveInfoList[n]); } } } } } else { NcCurveAnimation[] curveAnis = currentObj.GetComponents <NcCurveAnimation>(); foreach (NcCurveAnimation curveAni in curveAnis) { List <NcCurveAnimation.NcInfoCurve> curveInfoList = curveAni.m_CurveInfoList; for (int n = 0; n < curveInfoList.Count; n++) { NcCurveAnimation.NcInfoCurve curveInfo = curveInfoList[n]; curveInfo.m_nTag = n; // Add CurveInfo if (m_bSaveDialog) { if (m_OriCurveInfo.m_ApplyType == curveInfo.m_ApplyType) { infoList.Add(curveInfo); } } else { if (0 < m_nGroupIndex) { if (m_nGroupIndex - 1 == (int)curveInfo.m_ApplyType) { infoList.Add(curveInfo); } } else { infoList.Add(curveInfo); } } } } } m_CurveInfos = NgConvert.ToArray <NcCurveAnimation.NcInfoCurve>(infoList); m_nObjectCount = infoList.Count; // build contents string subDir = AssetDatabase.GetAssetPath(m_CurveAniObjects[m_nProjectIndex]); subDir = NgFile.PathSeparatorNormalize(subDir).Replace(m_LoadDirectory, ""); m_ObjectContents = new GUIContent[m_nObjectCount]; for (int n = 0; n < m_nObjectCount; n++) { if (m_ObjectContents[n] == null) { m_ObjectContents[n] = new GUIContent(); m_ObjectContents[n].text = ""; m_ObjectContents[n].tooltip = FXMakerTooltip.Tooltip(GetCurveInfo(m_CurveInfos[n], subDir)); } } Debug.Log("m_nObjectCount " + m_nObjectCount); }
public void LoadProject(string defaultEffectPath) { // Debug.Log(defaultEffectPath); NgUtil.LogDevelop("LoadProject - FXMakerMain"); // clear current FXMakerMain.inst.ClearCurrentEffectObject(m_CurrentEffectRoot, true); // load Project string[] projectFolerStrings = NgAsset.GetFolderList(FXMakerMain.inst.GetResourceDir(FXMakerMain.TOOLDIR_TYPE.PROJECTS), null, null, FXMakerOption.inst.m_nMinTopToolbarCount, out m_nProjectCount); m_ProjectFolerContents = NgConvert.StringsToContents(projectFolerStrings); for (int n = 0; n < m_ProjectFolerContents.Length; n++) { if (m_ProjectFolerContents[n].text == null) { m_ProjectFolerContents[n].tooltip = FXMakerTooltip.GetHsToolEffect("EMPTYPROJECT_HOVER", FXMakerMain.inst.GetResourceDir(FXMakerMain.TOOLDIR_TYPE.PROJECTS)); } else { if (IsReadOnlyFolder(m_ProjectFolerContents[n].text)) { m_ProjectFolerContents[n].tooltip = FXMakerTooltip.GetHsToolEffect("PROJECT_HOVER", NgFile.CombinePath(FXMakerMain.inst.GetResourceDir(FXMakerMain.TOOLDIR_TYPE.PROJECTS), m_ProjectFolerContents[n].text) + "\n" + FXMakerTooltip.GetHsToolMessage("FOLDER_READONLY", "")); } else { m_ProjectFolerContents[n].tooltip = FXMakerTooltip.GetHsToolEffect("PROJECT_HOVER", NgFile.CombinePath(FXMakerMain.inst.GetResourceDir(FXMakerMain.TOOLDIR_TYPE.PROJECTS), m_ProjectFolerContents[n].text)); } } } int nProjectIndex = -1; int nGroupIndex = 0; int nEffectIndex = 0; // 捞傈 急琶沥焊 贸府 if (FXMakerLayout.m_bDevelopPrefs == false) { nProjectIndex = UnityEditor.EditorPrefs.GetInt("FXMakerEffect.m_nProjectIndex", nProjectIndex); nGroupIndex = UnityEditor.EditorPrefs.GetInt("FXMakerEffect.m_nGroupIndex", nGroupIndex); nEffectIndex = UnityEditor.EditorPrefs.GetInt("FXMakerEffect.m_nEffectIndex", nEffectIndex); m_nScrollColumn = UnityEditor.EditorPrefs.GetInt("FXMakerEffect.m_nScrollColumn", m_nScrollColumn); } // defaultEffectPath if (defaultEffectPath != null && defaultEffectPath != "") { string projectPath = defaultEffectPath.Replace(FXMakerMain.inst.GetResourceDir(FXMakerMain.TOOLDIR_TYPE.PROJECTS), ""); string projectName = NgFile.GetSplit(projectPath, 1); string groupName = NgFile.GetSplit(projectPath, 2); for (nProjectIndex = 0; nProjectIndex < m_ProjectFolerContents.Length; nProjectIndex++) { if (m_ProjectFolerContents[nProjectIndex].text == projectName) { break; } } SelectToolbar(nProjectIndex, groupName, defaultEffectPath); } else { // Search DefaultDir if (nProjectIndex < 0) { for (nProjectIndex = 0; nProjectIndex < m_ProjectFolerContents.Length; nProjectIndex++) { if (m_ProjectFolerContents[nProjectIndex].text == m_DefaultProjectName) { break; } } } SelectToolbar(nProjectIndex, nGroupIndex, nEffectIndex); } }
// ========================================================================================================== void winPopup(int id) { Rect baseRect = GetPopupRect(); GUIStyle styleBox = GUI.skin.GetStyle("Transform_Box"); if (UnfocusClose(baseRect, 0, 0, 0, 20)) { return; } Rect lineRect; Rect groupRect; Rect leftRect; Rect rightRect; int nGroup = 3; int nLine = 2; string format = ""; baseRect = FXMakerLayout.GetChildVerticalRect(baseRect, 0, 1, 0, 1); baseRect = FXMakerLayout.GetOffsetRect(baseRect, -2); GUI.Box(baseRect, " "); // -------------------------------------------------------------------------------- // // World Position // groupRect = gNcLayout.GetInnerVerticalRect(baseRect, 15, 0, 5); // groupRect = gNcLayout.GetOffsetRect(groupRect, -5); // leftRect = gNcLayout.GetInnerHorizontalRect(groupRect, 6, 0, 2); // rightRect = gNcLayout.GetInnerHorizontalRect(groupRect, 6, 2, 4); // GUI.Label(gNcLayout.GetInnerHorizontalRect(leftRect, 1, 0, 1), "World Position"); // GUI.Box(gNcLayout.GetInnerHorizontalRect(rightRect, 3, 0, 1), trans.position.x.ToString(format), styleBox); // GUI.Box(gNcLayout.GetInnerHorizontalRect(rightRect, 3, 1, 1), trans.position.y.ToString(format), styleBox); // GUI.Box(gNcLayout.GetInnerHorizontalRect(rightRect, 3, 2, 1), trans.position.z.ToString(format), styleBox); // NgGUIDraw.DrawHorizontalLine(new Vector2(groupRect.x, groupRect.yMax+5), (int)groupRect.width, Color.black, 2, false); // Clipboard groupRect = FXMakerLayout.GetInnerVerticalRect(baseRect, 35, 0, 8); groupRect = FXMakerLayout.GetOffsetRect(groupRect, -5); leftRect = FXMakerLayout.GetInnerHorizontalRect(groupRect, 6, 0, 2); rightRect = FXMakerLayout.GetInnerHorizontalRect(groupRect, 6, 2, 4); for (int n = 0; n < nGroup; n++) { Vector3 vecValue = Vector3.zero; TRANS_TYPE nTrans = (TRANS_TYPE)n; switch (nTrans) { case TRANS_TYPE.POSITION: vecValue = m_CopyTransform.m_vecPos; break; case TRANS_TYPE.ROTATION: vecValue = m_CopyTransform.m_vecRotHint; break; case TRANS_TYPE.SCALE: vecValue = m_CopyTransform.m_vecScale; break; } GUI.Label(FXMakerLayout.GetInnerVerticalRect(FXMakerLayout.GetInnerHorizontalRect(leftRect, 1, 0, 1), 3, n, 1), "Clipboard " + m_TransStrings[n]); GUI.Box(FXMakerLayout.GetInnerVerticalRect(FXMakerLayout.GetInnerHorizontalRect(rightRect, 3, 0, 1), 3, n, 1), vecValue.x.ToString(format), styleBox); GUI.Box(FXMakerLayout.GetInnerVerticalRect(FXMakerLayout.GetInnerHorizontalRect(rightRect, 3, 1, 1), 3, n, 1), vecValue.y.ToString(format), styleBox); GUI.Box(FXMakerLayout.GetInnerVerticalRect(FXMakerLayout.GetInnerHorizontalRect(rightRect, 3, 2, 1), 3, n, 1), vecValue.z.ToString(format), styleBox); } groupRect = FXMakerLayout.GetInnerVerticalRect(baseRect, 35, 8, 1); groupRect = FXMakerLayout.GetOffsetRect(groupRect, -5); NgGUIDraw.DrawHorizontalLine(new Vector2(groupRect.x, groupRect.y - 5), (int)groupRect.width, Color.grey, 2, false); // -------------------------------------------------------------------------------- groupRect = FXMakerLayout.GetInnerVerticalRect(baseRect, 35, 9, 3); groupRect = FXMakerLayout.GetOffsetRect(groupRect, 5, 0, -5, 0); GUIContent[] worldlocalCon = new GUIContent[2] { GetHelpContent("World"), GetHelpContent("Local") }; int nWorldLocalIndex = GUI.SelectionGrid(groupRect, m_nWorldLocalSelIndex, worldlocalCon, 2); if (m_nWorldLocalSelIndex != nWorldLocalIndex) { m_nWorldLocalSelIndex = nWorldLocalIndex; EditorPrefs.SetInt("FxmPopup_Transform.m_nWorldLocalSelIndex", m_nWorldLocalSelIndex); InitFloatInput(); SaveTransform(); } // -------------------------------------------------------------------------------- Rect editRect = FXMakerLayout.GetInnerVerticalRect(baseRect, 35, 12, 18); for (int n = 0; n < nGroup; n++) { Vector3 vecValue = Vector3.zero; TRANS_TYPE nTrans = (TRANS_TYPE)n; switch (nTrans) { case TRANS_TYPE.POSITION: vecValue = m_SaveTrans.m_vecPos; break; case TRANS_TYPE.ROTATION: vecValue = m_SaveTrans.m_vecRotHint; break; case TRANS_TYPE.SCALE: vecValue = m_SaveTrans.m_vecScale; break; } Vector3 oldValue = vecValue; for (int nn = 0; nn < 3; nn++) { if (m_strFloatInput[n, nn] == null) { m_strFloatInput[n, nn] = vecValue[nn].ToString(); } } groupRect = FXMakerLayout.GetInnerVerticalRect(editRect, nGroup, n, 1); groupRect = FXMakerLayout.GetOffsetRect(groupRect, -3); leftRect = FXMakerLayout.GetInnerHorizontalRect(groupRect, 6, 0, 2); rightRect = FXMakerLayout.GetInnerHorizontalRect(groupRect, 6, 2, 4); // left // line 1 lineRect = FXMakerLayout.GetInnerVerticalRect(leftRect, nLine, 0, 1); GUI.Label(FXMakerLayout.GetInnerHorizontalRect(lineRect, 1, 0, 1), (m_nWorldLocalSelIndex == 0 ? "World " : "Local ") + m_TransStrings[n]); // line 2 lineRect = FXMakerLayout.GetInnerVerticalRect(leftRect, nLine, 1, 1); if (GUI.Button(FXMakerLayout.GetInnerHorizontalRect(lineRect, 3, 0, 1), GetHelpContent("Reset"))) { ResetTransform(nTrans); RecreateInstance(); InitFloatInput(); return; } if (GUI.Button(FXMakerLayout.GetInnerHorizontalRect(lineRect, 3, 1, 1), GetHelpContent("Copy"))) { CopyTransform(nTrans); InitFloatInput(); return; } if (GUI.Button(FXMakerLayout.GetInnerHorizontalRect(lineRect, 3, 2, 1), GetHelpContent("Paste"))) { PasteTransform(nTrans); InitFloatInput(); return; } // left, All Scale if (nTrans == TRANS_TYPE.SCALE) { lineRect = FXMakerLayout.GetInnerVerticalRect(leftRect, nLine, 0, 1); if (GUI.Button(FXMakerLayout.GetInnerHorizontalRect(lineRect, 5, 3, 1), GetHelpContent(GetPrevName(nTrans).ToString()))) { SetTransform(TRANS_TYPE.SCALE, GetPrevValue(nTrans, vecValue)); RecreateInstance(); InitFloatInput(); return; } if (GUI.Button(FXMakerLayout.GetInnerHorizontalRect(lineRect, 5, 4, 1), GetHelpContent(GetNextName(nTrans).ToString()))) { SetTransform(TRANS_TYPE.SCALE, GetNextValue(nTrans, vecValue)); RecreateInstance(); InitFloatInput(); return; } } // right // line 1 lineRect = FXMakerLayout.GetInnerVerticalRect(rightRect, nLine, 0, 1); GUI.SetNextControlName("TextField"); m_strFloatInput[n, 0] = GUI.TextField(FXMakerLayout.GetInnerHorizontalRect(lineRect, 3, 0, 1), m_strFloatInput[n, 0]); m_strFloatInput[n, 0] = NgConvert.GetVaildFloatString(m_strFloatInput[n, 0], ref vecValue.x); GUI.SetNextControlName("TextField"); m_strFloatInput[n, 1] = GUI.TextField(FXMakerLayout.GetInnerHorizontalRect(lineRect, 3, 1, 1), m_strFloatInput[n, 1]); m_strFloatInput[n, 1] = NgConvert.GetVaildFloatString(m_strFloatInput[n, 1], ref vecValue.y); GUI.SetNextControlName("TextField"); m_strFloatInput[n, 2] = GUI.TextField(FXMakerLayout.GetInnerHorizontalRect(lineRect, 3, 2, 1), m_strFloatInput[n, 2]); m_strFloatInput[n, 2] = NgConvert.GetVaildFloatString(m_strFloatInput[n, 2], ref vecValue.z); // if (nTrans == TRANS_TYPE.ROTATION) // vecValue = Vector3.zero; // line 2 lineRect = FXMakerLayout.GetInnerVerticalRect(rightRect, nLine, 1, 1); if (GUI.Button(FXMakerLayout.GetInnerHorizontalRect(lineRect, 3 * 2, 0, 1), GetHelpContent(GetPrevName(nTrans).ToString()))) { vecValue.x = GetPrevValue(nTrans, vecValue.x); } if (GUI.Button(FXMakerLayout.GetInnerHorizontalRect(lineRect, 3 * 2, 1, 1), GetHelpContent(GetNextName(nTrans).ToString()))) { vecValue.x = GetNextValue(nTrans, vecValue.x); } if (GUI.Button(FXMakerLayout.GetInnerHorizontalRect(lineRect, 3 * 2, 2, 1), GetHelpContent(GetPrevName(nTrans).ToString()))) { vecValue.y = GetPrevValue(nTrans, vecValue.y); } if (GUI.Button(FXMakerLayout.GetInnerHorizontalRect(lineRect, 3 * 2, 3, 1), GetHelpContent(GetNextName(nTrans).ToString()))) { vecValue.y = GetNextValue(nTrans, vecValue.y); } if (GUI.Button(FXMakerLayout.GetInnerHorizontalRect(lineRect, 3 * 2, 4, 1), GetHelpContent(GetPrevName(nTrans).ToString()))) { vecValue.z = GetPrevValue(nTrans, vecValue.z); } if (GUI.Button(FXMakerLayout.GetInnerHorizontalRect(lineRect, 3 * 2, 5, 1), GetHelpContent(GetNextName(nTrans).ToString()))) { vecValue.z = GetNextValue(nTrans, vecValue.z); } // Set if (vecValue != oldValue) { SetTransform(nTrans, vecValue); RecreateInstance(); InitFloatInput(); return; } } // -------------------------------------------------------------------------------- // World, Local groupRect = FXMakerLayout.GetInnerVerticalRect(baseRect, 35, 30, 1); groupRect = FXMakerLayout.GetOffsetRect(groupRect, -5); NgGUIDraw.DrawHorizontalLine(new Vector2(groupRect.x, groupRect.y - 6), (int)groupRect.width, Color.grey, 1, false); groupRect = FXMakerLayout.GetInnerVerticalRect(baseRect, 35, 30, 5); groupRect = FXMakerLayout.GetOffsetRect(groupRect, -5); leftRect = FXMakerLayout.GetInnerHorizontalRect(groupRect, 6, 0, 2); rightRect = FXMakerLayout.GetInnerHorizontalRect(groupRect, 6, 2, 4); GUI.Label(leftRect, m_nWorldLocalSelIndex == 0 ? "World " : "Local "); if (GUI.Button(FXMakerLayout.GetInnerHorizontalRect(rightRect, 3, 0, 1), GetHelpContent("Reset"))) { ResetTransform(TRANS_TYPE.POSITION); ResetTransform(TRANS_TYPE.ROTATION); ResetTransform(TRANS_TYPE.SCALE); RecreateInstance(); InitFloatInput(); return; } if (GUI.Button(FXMakerLayout.GetInnerHorizontalRect(rightRect, 3, 1, 1), GetHelpContent("Copy"))) { CopyTransform(TRANS_TYPE.POSITION); CopyTransform(TRANS_TYPE.ROTATION); CopyTransform(TRANS_TYPE.SCALE); return; } if (GUI.Button(FXMakerLayout.GetInnerHorizontalRect(rightRect, 3, 2, 1), GetHelpContent("Paste"))) { PasteTransform(TRANS_TYPE.POSITION); PasteTransform(TRANS_TYPE.ROTATION); PasteTransform(TRANS_TYPE.SCALE); RecreateInstance(); InitFloatInput(); return; } FXMakerMain.inst.SaveTooltip(); }
public override void OnInspectorGUI() { AddScriptNameField(m_Sel); m_UndoManager.CheckUndo(); m_FxmPopupManager = GetFxmPopupManager(); // -------------------------------------------------------------- bool bClickButton = false; EditorGUI.BeginChangeCheck(); { // DrawDefaultInspector(); m_Sel.m_fUserTag = EditorGUILayout.FloatField(GetCommonContent("m_fUserTag"), m_Sel.m_fUserTag); m_Sel.m_fDelayTime = EditorGUILayout.FloatField(GetHelpContent("m_fDelayTime"), m_Sel.m_fDelayTime); m_Sel.m_fEmitTime = EditorGUILayout.FloatField(GetHelpContent("m_fEmitTime"), m_Sel.m_fEmitTime); m_Sel.m_bSmoothHide = EditorGUILayout.Toggle(GetHelpContent("m_bSmoothHide"), m_Sel.m_bSmoothHide); m_Sel.m_fLifeTime = EditorGUILayout.FloatField(GetHelpContent("m_fLifeTime"), m_Sel.m_fLifeTime); m_Sel.m_TipAxis = (NcTrailTexture.AXIS_TYPE)EditorGUILayout.EnumPopup(GetHelpContent("m_TipAxis"), m_Sel.m_TipAxis, GUILayout.MaxWidth(Screen.width)); m_Sel.m_fTipSize = EditorGUILayout.FloatField(GetHelpContent("m_fTipSize"), m_Sel.m_fTipSize); m_Sel.m_bCenterAlign = EditorGUILayout.Toggle(GetHelpContent("m_bCenterAlign"), m_Sel.m_bCenterAlign); m_Sel.m_UvFlipHorizontal = EditorGUILayout.Toggle(GetHelpContent("m_UvFlipHorizontal"), m_Sel.m_UvFlipHorizontal); m_Sel.m_UvFlipVirtical = EditorGUILayout.Toggle(GetHelpContent("m_UvFlipVirtical"), m_Sel.m_UvFlipVirtical); m_Sel.m_nFadeHeadCount = EditorGUILayout.IntField(GetHelpContent("m_nFadeHeadCount"), m_Sel.m_nFadeHeadCount); m_Sel.m_nFadeTailCount = EditorGUILayout.IntField(GetHelpContent("m_nFadeTailCount"), m_Sel.m_nFadeTailCount); int nColorCount = EditorGUILayout.IntField(GetHelpContent("ColorCount"), m_Sel.m_Colors.Length); if (nColorCount != m_Sel.m_Colors.Length) { m_Sel.m_Colors = NgConvert.ResizeArray <Color>(m_Sel.m_Colors, nColorCount, Color.white); } for (int n = 0; n < m_Sel.m_Colors.Length; n++) { m_Sel.m_Colors[n] = EditorGUILayout.ColorField(GetHelpContent(" Color " + n), m_Sel.m_Colors[n]); } int nSizeCount = EditorGUILayout.IntField(GetHelpContent("SizeRateCount"), m_Sel.m_SizeRates.Length); if (nSizeCount != m_Sel.m_SizeRates.Length) { m_Sel.m_SizeRates = NgConvert.ResizeArray <float>(m_Sel.m_SizeRates, nSizeCount, 1); } for (int n = 0; n < m_Sel.m_SizeRates.Length; n++) { m_Sel.m_SizeRates[n] = EditorGUILayout.FloatField(GetHelpContent(" SizeRate " + n), m_Sel.m_SizeRates[n]); SetMinValue(ref m_Sel.m_SizeRates[n], 0); } m_Sel.m_bInterpolation = EditorGUILayout.Toggle(GetHelpContent("m_bInterpolation"), m_Sel.m_bInterpolation); if (m_Sel.m_bInterpolation) { m_Sel.m_nMaxSmoothCount = EditorGUILayout.IntField(GetHelpContent(" nMaxSmoothCount"), m_Sel.m_nMaxSmoothCount); m_Sel.m_nSubdivisions = EditorGUILayout.IntField(GetHelpContent(" nSubdivisions"), m_Sel.m_nSubdivisions); } m_Sel.m_fMinVertexDistance = EditorGUILayout.FloatField(GetHelpContent("m_fMinVertexDistance"), m_Sel.m_fMinVertexDistance); m_Sel.m_fMaxVertexDistance = EditorGUILayout.FloatField(GetHelpContent("m_fMaxVertexDistance"), m_Sel.m_fMaxVertexDistance); m_Sel.m_fMaxAngle = EditorGUILayout.FloatField(GetHelpContent("m_fMaxAngle"), m_Sel.m_fMaxAngle); m_Sel.m_bAutoDestruct = EditorGUILayout.Toggle(GetHelpContent("m_bAutoDestruct"), m_Sel.m_bAutoDestruct); SetMinValue(ref m_Sel.m_fDelayTime, 0); SetMinValue(ref m_Sel.m_fEmitTime, 0); SetMinValue(ref m_Sel.m_fLifeTime, 0.01f); SetMinValue(ref m_Sel.m_fTipSize, 0.01f); SetMinValue(ref m_Sel.m_fMinVertexDistance, 0.01f); SetMinValue(ref m_Sel.m_fMaxVertexDistance, 0.02f); SetMinValue(ref m_Sel.m_fMaxAngle, 0); SetMinValue(ref m_Sel.m_nMaxSmoothCount, 3); SetMinValue(ref m_Sel.m_nSubdivisions, 2); } m_UndoManager.CheckDirty(); // -------------------------------------------------------------- if ((EditorGUI.EndChangeCheck() || bClickButton) && GetFXMakerMain()) { OnEditComponent(); } // --------------------------------------------------------------------- if (GUI.tooltip != "") { m_LastTooltip = GUI.tooltip; } HelpBox(m_LastTooltip); }
void DrawBottomPaletteRect(Rect baseRect) { if (m_SelectedMaterial == null) { return; } GUIStyle styleBox = GUI.skin.GetStyle("MaterialList_Box"); Color oldColor = GUI.color; Color oldMatColor; bool bReinstance = false; if (NgMaterial.IsMaterialColor(m_SelectedMaterial) == false) { return; } // Color Palette Image baseRect = FXMakerLayout.GetOffsetRect(baseRect, 0, -2, 0, -3); GUI.Box(baseRect, FXMakerTooltip.GetGUIContentNoTooltip(), styleBox); baseRect = FXMakerLayout.GetOffsetRect(baseRect, 2, 2, -2, -2); Rect popupRect = GetPopupRect(); Rect leftRect = FXMakerLayout.GetInnerHorizontalRect(baseRect, 2, 0, 1); Rect rightRect = FXMakerLayout.GetInnerHorizontalRect(baseRect, 2, 1, 1); // Pickup Color GUI.color = Color.white; Color pickColor = oldMatColor = NgMaterial.GetMaterialColor(m_SelectedMaterial); Color32 oldMatCol32 = oldMatColor; // Color Progress Rect barRect = FXMakerLayout.GetOffsetRect(FXMakerLayout.GetInnerVerticalRect(leftRect, 5, 0, 1), -1, 1, 1, -1); GUI.DrawTexture(FXMakerLayout.GetOffsetRect(barRect, 5, 0, -5, 0), m_PaletteBarColorImage); float fPaletteBarValue = GUI.HorizontalSlider(barRect, m_fPaletteBarColorValue, 0, 1.0f); if (m_fPaletteBarColorValue != fPaletteBarValue) { m_fPaletteBarColorValue = fPaletteBarValue; pickColor = m_PaletteBarColorImage.GetPixelBilinear(m_fPaletteBarColorValue, 0.5f); } // Color Palette Rect palRect = FXMakerLayout.GetOffsetRect(FXMakerLayout.GetInnerVerticalRect(leftRect, 5, 1, 4), 4, 0, -4, -1); Rect lockRect = new Rect(palRect.x + popupRect.x, palRect.y + popupRect.y, palRect.width, palRect.height + 1); Vector2 mousePos = FXMakerLayout.GetGUIMousePosition(); GUI.DrawTexture(palRect, m_PalettePanelImage); if (Input.GetMouseButtonDown(0) && lockRect.Contains(mousePos)) { m_bEnterPalette = true; } if (Input.GetMouseButtonUp(0) && m_bEnterPalette) { m_bEnterPalette = false; bReinstance = true; } if (Input.GetMouseButton(0) && m_bEnterPalette) { int xpos = (int)(mousePos.x - lockRect.x); int ypos = (int)(mousePos.y - lockRect.y); if (xpos < 0) { xpos = 0; } if (ypos < 0) { ypos = 0; } if (lockRect.width <= xpos) { xpos = (int)(lockRect.width); } if (lockRect.height <= ypos) { ypos = (int)(lockRect.height); } pickColor = m_PalettePanelImage.GetPixelBilinear(xpos / palRect.width, (palRect.height - ypos) / palRect.height); } // Gray Progress GUI.changed = false; barRect = FXMakerLayout.GetOffsetRect(FXMakerLayout.GetInnerVerticalRect(rightRect, 5, 0, 1), -1, 1, 1, -1); GUI.DrawTexture(FXMakerLayout.GetOffsetRect(barRect, 5, 0, -5, 0), m_PaletteBarGrayImage); fPaletteBarValue = GUI.HorizontalSlider(barRect, m_fPaletteBarGrayValue, 0, 1.0f); if (GUI.changed) // m_fPaletteBarGrayValue != fPaletteBarValue { m_fPaletteBarGrayValue = fPaletteBarValue; pickColor = m_PaletteBarGrayImage.GetPixelBilinear(m_fPaletteBarGrayValue, 0.5f); if (Input.GetMouseButtonDown(1)) { m_fPaletteBarGrayValue = 0.5f; pickColor = new Color(0.5f, 0.5f, 0.5f); } GUI.changed = false; } GUI.color = oldColor; // Color RGB Scroll rightRect = FXMakerLayout.GetOffsetRect(rightRect, 0, 3, -5, -3); Color32 selColor32 = new Color(pickColor.r, pickColor.g, pickColor.b, oldMatColor.a); int nTextWidth = 15; int nEditWidth = 38; string[] rgbName = { "R", "G", "B", "A" }; Color[] rgbColor = { Color.red, Color.green, Color.blue, Color.white }; byte[] RGBA = new byte[4]; RGBA[0] = selColor32.r; RGBA[1] = selColor32.g; RGBA[2] = selColor32.b; RGBA[3] = selColor32.a; // RGB Progress for (int n = 0; n < 4; n++) { string str; oldColor = GUI.color; Rect line = FXMakerLayout.GetInnerVerticalRect(rightRect, 5, n + 1, 1); line.width = nTextWidth; GUI.color = rgbColor[n]; GUI.Label(line, rgbName[n]); GUI.color = oldColor; line = FXMakerLayout.GetInnerVerticalRect(rightRect, 5, n + 1, 1); RGBA[n] = (byte)GUI.HorizontalSlider(FXMakerLayout.GetOffsetRect(line, nTextWidth, 0, -nEditWidth - 8, 0), RGBA[n], 0, 255); if (GUI.changed) { if (Input.GetMouseButtonDown(1)) { RGBA[n] = 127; } GUI.changed = false; } line.x = line.x + line.width - nEditWidth; line.width = nEditWidth; str = GUI.TextField(FXMakerLayout.GetOffsetRect(line, 0, -2, 0, 2), RGBA[n].ToString()); RGBA[n] = (byte)(255 < NgConvert.ToUint(str, RGBA[n]) ? 255 : NgConvert.ToUint(str, RGBA[n])); } selColor32.r = RGBA[0]; selColor32.g = RGBA[1]; selColor32.b = RGBA[2]; selColor32.a = RGBA[3]; if (selColor32.r != oldMatCol32.r || selColor32.g != oldMatCol32.g || selColor32.b != oldMatCol32.b || selColor32.a != oldMatCol32.a) { SetActiveMaterialColor(selColor32); } // mouse up - reinstance Rect chkRect = new Rect(baseRect.x + popupRect.x, baseRect.y + popupRect.y, baseRect.width, baseRect.height); if (Input.GetMouseButtonUp(0) && chkRect.Contains(mousePos)) { bReinstance = true; } if (bReinstance) { // CreateNewShaderMaterials(m_SelectedMaterial); FXMakerMain.inst.CreateCurrentInstanceEffect(true); } }
public static void AddSharedMaterial(Renderer tarRenderer) { Material[] currentMats = tarRenderer.sharedMaterials; currentMats = NgConvert.ResizeArray <Material>(currentMats, currentMats.Length + 1); tarRenderer.sharedMaterials = currentMats; }
public override void OnInspectorGUI() { AddScriptNameField(m_Sel); int nClickIndex = -1; int nClickButton = 0; Rect rect; int nLeftWidth = 35; int nAddHeight = 30; int nDelWidth = 35; int nLineHeight = 18; int nSpriteHeight = nLeftWidth; List <NcSpriteFactory.NcSpriteNode> spriteList = m_Sel.m_SpriteList; m_FxmPopupManager = GetFxmPopupManager(); // -------------------------------------------------------------- bool bClickButton = false; EditorGUI.BeginChangeCheck(); { m_UndoManager.CheckUndo(); // -------------------------------------------------------------- m_Sel.m_fUserTag = EditorGUILayout.FloatField(GetCommonContent("m_fUserTag"), m_Sel.m_fUserTag); EditorGUILayout.Space(); m_Sel.m_SpriteType = (NcSpriteFactory.SPRITE_TYPE)EditorGUILayout.EnumPopup(GetHelpContent("m_SpriteType"), m_Sel.m_SpriteType); // -------------------------------------------------------------- if (m_Sel.m_SpriteType == NcSpriteFactory.SPRITE_TYPE.NcSpriteAnimation && m_Sel.gameObject.GetComponent("NcSpriteAnimation") == null) { rect = EditorGUILayout.BeginHorizontal(GUILayout.Height(m_fButtonHeight)); { if (FXMakerLayout.GUIButton(rect, GetHelpContent("Add NcSpriteAnimation Component"), true)) { m_Sel.gameObject.AddComponent("NcSpriteAnimation"); } GUILayout.Label(""); } EditorGUILayout.EndHorizontal(); } // -------------------------------------------------------------- if (m_Sel.m_SpriteType == NcSpriteFactory.SPRITE_TYPE.NcSpriteTexture && m_Sel.gameObject.GetComponent("NcSpriteTexture") == null) { rect = EditorGUILayout.BeginHorizontal(GUILayout.Height(m_fButtonHeight)); { if (FXMakerLayout.GUIButton(rect, GetHelpContent("Add NcSpriteTexture Component"), true)) { m_Sel.gameObject.AddComponent("NcSpriteTexture"); } GUILayout.Label(""); } EditorGUILayout.EndHorizontal(); } EditorGUILayout.Space(); // -------------------------------------------------------------- int nSelIndex = EditorGUILayout.IntSlider(GetHelpContent("m_nCurrentIndex"), m_Sel.m_nCurrentIndex, 0, (spriteList == null ? 0 : spriteList.Count)); if (m_Sel.m_SpriteType == NcSpriteFactory.SPRITE_TYPE.NcSpriteTexture) { m_Sel.m_fUvScale = EditorGUILayout.FloatField(GetHelpContent("m_fUvScale"), m_Sel.m_fUvScale); } m_Sel.m_nMaxAtlasTextureSize = EditorGUILayout.IntPopup("nMaxAtlasTextureSize", m_Sel.m_nMaxAtlasTextureSize, NgEnum.m_TextureSizeStrings, NgEnum.m_TextureSizeIntters); // m_Sel.m_AtlasMaterial = (Material)EditorGUILayout.ObjectField(GetHelpContent("m_AtlasMaterial") , m_Sel.m_AtlasMaterial, typeof(Material), false); if (m_Sel.m_nCurrentIndex != nSelIndex) { m_Sel.m_nCurrentIndex = nSelIndex; m_Sel.SetSprite(nSelIndex, false); } // check // Add Button ------------------------------------------------------ EditorGUILayout.Space(); rect = EditorGUILayout.BeginHorizontal(GUILayout.Height(nAddHeight * 2)); { Rect lineRect = FXMakerLayout.GetInnerVerticalRect(rect, 2, 0, 1); if (GUI.Button(FXMakerLayout.GetInnerHorizontalRect(lineRect, 3, 0, 1), GetHelpContent("Add Sprite"))) { bClickButton = true; m_Sel.AddSpriteNode(); } if (GUI.Button(FXMakerLayout.GetInnerHorizontalRect(lineRect, 3, 1, 1), GetHelpContent("Build Sprite"))) { bClickButton = true; BuildSpriteAtlas(m_Sel.renderer.sharedMaterial); } if (FXMakerLayout.GUIButton(FXMakerLayout.GetInnerHorizontalRect(lineRect, 3, 2, 1), GetHelpContent("Clear All"), (0 < m_Sel.GetSpriteNodeCount()))) { bClickButton = true; if (m_FxmPopupManager != null) { m_FxmPopupManager.CloseNcPrefabPopup(); } m_Sel.ClearAllSpriteNode(); } lineRect = FXMakerLayout.GetInnerVerticalRect(rect, 2, 1, 1); if (FXMakerLayout.GUIButton(FXMakerLayout.GetInnerHorizontalRect(lineRect, 3, 0, 1), GetHelpContent("Sequence"), (0 < m_Sel.GetSpriteNodeCount()))) { m_Sel.m_bSequenceMode = true; bClickButton = true; m_Sel.SetSprite(0, false); } if (FXMakerLayout.GUIButton(FXMakerLayout.GetInnerHorizontalRect(lineRect, 3, 1, 1), GetHelpContent("NewMaterial"), true)) { Material newMat = new Material(m_Sel.renderer.sharedMaterial); string matPath = AssetDatabase.GetAssetPath(m_Sel.renderer.sharedMaterial); NgMaterial.SaveMaterial(newMat, NgFile.TrimFilenameExt(matPath), m_Sel.name); m_Sel.renderer.sharedMaterial = newMat; // m_Sel.renderer.sharedMaterial = (Material)AssetDatabase.LoadAssetAtPath(savePath, typeof(Material)); } GUILayout.Label(""); } EditorGUILayout.EndHorizontal(); // Select ShotType ------------------------------------------------- // showType = (NcSpriteFactory.SHOW_TYPE)EditorGUILayout.EnumPopup (GetHelpContent("m_ShowType") , showType); // -------------------------------------------------------------- EditorGUILayout.Space(); NcSpriteFactory.SHOW_TYPE showType = (NcSpriteFactory.SHOW_TYPE)EditorPrefs.GetInt("NcSpriteFactory.SHOW_TYPE", 0); rect = EditorGUILayout.BeginHorizontal(GUILayout.Height(nLineHeight)); { showType = FXMakerLayout.GUIToggle(FXMakerLayout.GetInnerHorizontalRect(rect, 5, 0, 1), showType == NcSpriteFactory.SHOW_TYPE.NONE, GetHelpContent("NONE"), true) ? NcSpriteFactory.SHOW_TYPE.NONE : showType; showType = FXMakerLayout.GUIToggle(FXMakerLayout.GetInnerHorizontalRect(rect, 5, 1, 1), showType == NcSpriteFactory.SHOW_TYPE.ALL, GetHelpContent("ALL"), true) ? NcSpriteFactory.SHOW_TYPE.ALL : showType; if (m_Sel.m_SpriteType == NcSpriteFactory.SPRITE_TYPE.NcSpriteAnimation) { showType = FXMakerLayout.GUIToggle(FXMakerLayout.GetInnerHorizontalRect(rect, 5, 2, 1), showType == NcSpriteFactory.SHOW_TYPE.SPRITE, GetHelpContent("SPRITE"), true) ? NcSpriteFactory.SHOW_TYPE.SPRITE : showType; showType = FXMakerLayout.GUIToggle(FXMakerLayout.GetInnerHorizontalRect(rect, 5, 3, 1), showType == NcSpriteFactory.SHOW_TYPE.ANIMATION, GetHelpContent("ANIMATION"), true) ? NcSpriteFactory.SHOW_TYPE.ANIMATION : showType; } showType = FXMakerLayout.GUIToggle(FXMakerLayout.GetInnerHorizontalRect(rect, 5, 4, 1), showType == NcSpriteFactory.SHOW_TYPE.EFFECT, GetHelpContent("EFFECT"), true) ? NcSpriteFactory.SHOW_TYPE.EFFECT : showType; GUILayout.Label(""); } EditorGUILayout.EndHorizontal(); EditorPrefs.SetInt("NcSpriteFactory.SHOW_TYPE", ((int)showType)); // Show Option ------------------------------------------------- EditorGUILayout.Space(); rect = EditorGUILayout.BeginHorizontal(GUILayout.Height(nLineHeight)); { m_Sel.m_bShowEffect = FXMakerLayout.GUIToggle(FXMakerLayout.GetInnerHorizontalRect(rect, 3, 0, 1), m_Sel.m_bShowEffect, GetHelpContent("m_bShowEffect"), true); if (m_Sel.m_SpriteType == NcSpriteFactory.SPRITE_TYPE.NcSpriteAnimation) { m_Sel.m_bTestMode = FXMakerLayout.GUIToggle(FXMakerLayout.GetInnerHorizontalRect(rect, 3, 1, 1), m_Sel.m_bTestMode, GetHelpContent("m_bTestMode"), true); m_Sel.m_bSequenceMode = FXMakerLayout.GUIToggle(FXMakerLayout.GetInnerHorizontalRect(rect, 3, 2, 1), m_Sel.m_bSequenceMode, GetHelpContent("m_bSequenceMode"), true); } GUILayout.Label(""); } EditorGUILayout.EndHorizontal(); // Node List ------------------------------------------------------ for (int n = 0; n < (spriteList != null ? spriteList.Count : 0); n++) { EditorGUILayout.Space(); EditorGUI.BeginChangeCheck(); // Load Texture --------------------------------------------------------- Texture2D selTexture = null; if (spriteList[n].m_TextureGUID != "") { selTexture = (Texture2D)AssetDatabase.LoadAssetAtPath(AssetDatabase.GUIDToAssetPath(spriteList[n].m_TextureGUID), typeof(Texture2D)); } // Enabled -------------------------------------------------------------- rect = EditorGUILayout.BeginHorizontal(GUILayout.Height(nLineHeight)); { Rect subRect; // enable spriteList[n].m_bIncludedAtlas = GUILayout.Toggle(spriteList[n].m_bIncludedAtlas, "Idx", GUILayout.Width(nLeftWidth)); // change index subRect = rect; subRect.x += nLeftWidth; subRect.width = nLineHeight * 2; int newPos = EditorGUI.IntPopup(subRect, n, NgConvert.GetIntStrings(0, spriteList.Count), NgConvert.GetIntegers(0, spriteList.Count)); if (newPos != n) { NcSpriteFactory.NcSpriteNode node = spriteList[n]; m_Sel.m_SpriteList.Remove(node); m_Sel.m_SpriteList.Insert(newPos, node); return; } // name subRect = rect; subRect.x += nLeftWidth + nLineHeight * 2; subRect.width -= nLeftWidth + nLineHeight * 2; spriteList[n].m_TextureName = selTexture == null ? "" : selTexture.name; GUI.Label(subRect, (selTexture == null ? "" : "(" + spriteList[n].m_nFrameCount + ") " + selTexture.name)); GUI.Box(subRect, ""); GUI.Box(rect, ""); // delete if (GUI.Button(new Rect(subRect.x + subRect.width - nDelWidth, subRect.y, nDelWidth, subRect.height), GetHelpContent("Del"))) { bClickButton = true; if (m_FxmPopupManager != null) { m_FxmPopupManager.CloseNcPrefabPopup(); } m_Sel.DeleteSpriteNode(n); return; } } EditorGUILayout.EndHorizontal(); // MaxAlpha ------------------------------------------------------------- spriteList[n].m_fMaxTextureAlpha = EditorGUILayout.FloatField(GetHelpContent("m_fMaxTextureAlpha"), spriteList[n].m_fMaxTextureAlpha); // Texture -------------------------------------------------------------- rect = EditorGUILayout.BeginHorizontal(GUILayout.Height(nSpriteHeight)); { GUILayout.Label("", GUILayout.Width(nLeftWidth)); Rect subRect = rect; subRect.width = nLeftWidth; FXMakerLayout.GetOffsetRect(rect, 0, 5, 0, -5); EditorGUI.BeginChangeCheck(); selTexture = (Texture2D)EditorGUI.ObjectField(subRect, GetHelpContent(""), selTexture, typeof(Texture2D), false); if (EditorGUI.EndChangeCheck()) { if (selTexture != null) { spriteList[n].m_TextureGUID = AssetDatabase.AssetPathToGUID(AssetDatabase.GetAssetPath(selTexture)); } } if (selTexture != null) { if (m_Sel.m_SpriteType == NcSpriteFactory.SPRITE_TYPE.NcSpriteAnimation) { spriteList[n].m_nFrameCount = selTexture.width / selTexture.height; spriteList[n].m_nFrameSize = selTexture.height; m_Sel.m_nFrameSize = spriteList[n].m_nFrameSize; } else { spriteList[n].m_nFrameCount = 1; spriteList[n].m_nFrameSize = 1; m_Sel.m_nFrameSize = 1; } } // draw texture subRect = FXMakerLayout.GetOffsetRect(rect, nLeftWidth + 4, 0, 0, -4); if (selTexture != null) { GUI.DrawTexture(FXMakerLayout.GetOffsetRect(subRect, 0, 0, -nDelWidth, 0), selTexture, ScaleMode.ScaleToFit, true, selTexture.width / selTexture.height); } // delete if (GUI.Button(new Rect(subRect.x + subRect.width - nDelWidth, subRect.y, nDelWidth, subRect.height), GetHelpContent("Rmv"))) { spriteList[n].m_TextureGUID = ""; spriteList[n].m_nFrameCount = 0; spriteList[n].m_nFrameSize = 0; } GUI.Box(rect, ""); } EditorGUILayout.EndHorizontal(); // Change selIndex Event e = Event.current; if (e.type == EventType.MouseDown) { if (rect.Contains(e.mousePosition)) { nClickIndex = n; nClickButton = e.button; } } // SpriteNode ---------------------------------------------------------- if (bClickButton == false) { if (m_Sel.m_SpriteType == NcSpriteFactory.SPRITE_TYPE.NcSpriteAnimation && showType == NcSpriteFactory.SHOW_TYPE.ALL || showType == NcSpriteFactory.SHOW_TYPE.SPRITE) { spriteList[n].m_bLoop = EditorGUILayout.Toggle(GetHelpContent("m_bLoop"), spriteList[n].m_bLoop); spriteList[n].m_fTime = EditorGUILayout.Slider(GetHelpContent("m_fTime"), spriteList[n].m_nFrameCount / spriteList[n].m_fFps, 0, 5, null); spriteList[n].m_fFps = EditorGUILayout.Slider(GetHelpContent("m_fFps"), spriteList[n].m_nFrameCount / spriteList[n].m_fTime, 50, 1, null); } if (m_Sel.m_SpriteType == NcSpriteFactory.SPRITE_TYPE.NcSpriteAnimation && showType == NcSpriteFactory.SHOW_TYPE.ALL || showType == NcSpriteFactory.SHOW_TYPE.ANIMATION) { spriteList[n].m_nNextSpriteIndex = EditorGUILayout.Popup("m_nNextSpriteIndex", spriteList[n].m_nNextSpriteIndex + 1, GetSpriteNodeNames()) - 1; spriteList[n].m_nTestMode = EditorGUILayout.Popup("m_nTestMode", spriteList[n].m_nTestMode, NgConvert.ContentsToStrings(FxmTestControls.GetHcEffectControls_Trans(FxmTestControls.AXIS.Z)), GUILayout.MaxWidth(Screen.width)); spriteList[n].m_fTestSpeed = EditorGUILayout.FloatField("m_fTestSpeed", spriteList[n].m_fTestSpeed); SetMinValue(ref spriteList[n].m_fTestSpeed, 0.01f); SetMinValue(ref spriteList[n].m_fTestSpeed, 0.01f); } if (showType == NcSpriteFactory.SHOW_TYPE.ALL || showType == NcSpriteFactory.SHOW_TYPE.EFFECT) { // char effect ------------------------------------------------------------- spriteList[n].m_EffectPrefab = (GameObject)EditorGUILayout.ObjectField(GetHelpContent("m_EffectPrefab"), spriteList[n].m_EffectPrefab, typeof(GameObject), false, null); rect = EditorGUILayout.BeginHorizontal(GUILayout.Height(m_fButtonHeight * 0.7f)); { if (FXMakerLayout.GUIButton(FXMakerLayout.GetInnerHorizontalRect(rect, 2, 0, 1), GetHelpContent("SelEffect"), (m_FxmPopupManager != null))) { m_FxmPopupManager.ShowSelectPrefabPopup(m_Sel, n, 0, true); } if (FXMakerLayout.GUIButton(FXMakerLayout.GetInnerHorizontalRect(rect, 2, 1, 1), GetHelpContent("ClearEffect"), (spriteList[n].m_EffectPrefab != null))) { bClickButton = true; spriteList[n].m_EffectPrefab = null; } GUILayout.Label(""); } EditorGUILayout.EndHorizontal(); if (spriteList[n].m_EffectPrefab != null) { if (m_Sel.m_SpriteType == NcSpriteFactory.SPRITE_TYPE.NcSpriteAnimation) { spriteList[n].m_nEffectFrame = EditorGUILayout.IntSlider(GetHelpContent("m_nEffectFrame"), spriteList[n].m_nEffectFrame, 0, spriteList[n].m_nFrameCount, null); spriteList[n].m_bEffectOnlyFirst = EditorGUILayout.Toggle(GetHelpContent("m_bEffectOnlyFirst"), spriteList[n].m_bEffectOnlyFirst); } spriteList[n].m_fEffectSpeed = EditorGUILayout.FloatField("m_fEffectSpeed", spriteList[n].m_fEffectSpeed); spriteList[n].m_fEffectScale = EditorGUILayout.FloatField("m_fEffectScale", spriteList[n].m_fEffectScale); spriteList[n].m_EffectPos = EditorGUILayout.Vector3Field("m_EffectPos", spriteList[n].m_EffectPos, null); spriteList[n].m_EffectRot = EditorGUILayout.Vector3Field("m_EffectRot", spriteList[n].m_EffectRot, null); SetMinValue(ref spriteList[n].m_fEffectScale, 0.001f); } EditorGUILayout.Space(); // char sound ------------------------------------------------------------- spriteList[n].m_AudioClip = (AudioClip)EditorGUILayout.ObjectField(GetHelpContent("m_AudioClip"), spriteList[n].m_AudioClip, typeof(AudioClip), false, null); rect = EditorGUILayout.BeginHorizontal(GUILayout.Height(m_fButtonHeight * 0.7f)); { // if (FXMakerLayout.GUIButton(FXMakerLayout.GetInnerHorizontalRect(rect, 2, 0, 1), GetHelpContent("SelAudio"), (m_FxmPopupManager != null))) // m_FxmPopupManager.ShowSelectAudioClipPopup(m_Sel); if (FXMakerLayout.GUIButton(FXMakerLayout.GetInnerHorizontalRect(rect, 2, 1, 1), GetHelpContent("ClearAudio"), (spriteList[n].m_AudioClip != null))) { bClickButton = true; spriteList[n].m_AudioClip = null; } GUILayout.Label(""); } EditorGUILayout.EndHorizontal(); if (spriteList[n].m_AudioClip != null) { if (m_Sel.m_SpriteType == NcSpriteFactory.SPRITE_TYPE.NcSpriteAnimation) { spriteList[n].m_nSoundFrame = EditorGUILayout.IntSlider(GetHelpContent("m_nSoundFrame"), spriteList[n].m_nSoundFrame, 0, spriteList[n].m_nFrameCount, null); spriteList[n].m_bSoundOnlyFirst = EditorGUILayout.Toggle(GetHelpContent("m_bSoundOnlyFirst"), spriteList[n].m_bSoundOnlyFirst); } spriteList[n].m_bSoundLoop = EditorGUILayout.Toggle(GetHelpContent("m_bSoundLoop"), spriteList[n].m_bSoundLoop); spriteList[n].m_fSoundVolume = EditorGUILayout.Slider(GetHelpContent("m_fSoundVolume"), spriteList[n].m_fSoundVolume, 0, 1.0f, null); spriteList[n].m_fSoundPitch = EditorGUILayout.Slider(GetHelpContent("m_fSoundPitch"), spriteList[n].m_fSoundPitch, -3, 3.0f, null); } } } if (EditorGUI.EndChangeCheck()) { nClickIndex = n; } selTexture = null; } // Select Node ---------------------------------------------------- if (0 <= nClickIndex) { m_Sel.SetSprite(nClickIndex, false); if (m_Sel.m_bTestMode && 0 <= spriteList[nClickIndex].m_nTestMode && GetFXMakerMain()) { GetFXMakerMain().GetFXMakerControls().SetTransIndex(spriteList[nClickIndex].m_nTestMode, (4 <= spriteList[nClickIndex].m_nTestMode ? 1.8f : 1.0f), spriteList[nClickIndex].m_fTestSpeed); } // Rotate if (nClickButton == 1) { m_Sel.transform.Rotate(0, 180, 0); } nClickIndex = -1; bClickButton = true; } m_UndoManager.CheckDirty(); } // -------------------------------------------------------------- if ((EditorGUI.EndChangeCheck() || bClickButton) && GetFXMakerMain()) { GetFXMakerMain().CreateCurrentInstanceEffect(true); } // --------------------------------------------------------------------- if (GUI.tooltip != "") { m_LastTooltip = GUI.tooltip; } HelpBox(m_LastTooltip); }
// Event ------------------------------------------------------------------------- // Function ---------------------------------------------------------------------- public bool SetWireframe(bool bWireframe, bool bTexture, bool bRoot) { if (m_BaseTrans == null || m_BaseTrans.renderer == null) { m_bWireframe = false; return(false); } m_bTexture = bTexture; m_bWireframe = bWireframe; m_bRoot = bRoot; // m_BaseTrans.renderer.enabled = m_bTexture; // if (bWireframe == false) // { // m_bWireframe = false; // return false; // } bool bParticle = (IsLegacy() || IsShuriken()); if ((bParticle == false) && (m_BaseTrans.GetComponent <MeshFilter>() == null || m_BaseTrans.GetComponent <MeshFilter>().sharedMesh == null)) { m_bWireframe = false; return(false); } // m_meshRenderer = GetComponent<MeshRenderer>(); // if (!m_meshRenderer) // m_meshRenderer = gameObject.AddComponent<MeshRenderer>(); // if (m_meshRenderer.material == null) // { // m_meshRenderer.material = new Material("Shader \"Lines/Background\" { Properties { _Color (\"Main Color\", Color) = (1,1,1,1) } SubShader { Pass {" + (m_ZWrite ? " ZWrite on " : " ZWrite off ") + (m_blend ? " Blend SrcAlpha OneMinusSrcAlpha" : " ") + (m_AWrite ? " Colormask RGBA " : " ") + "Lighting Off Offset 1, 1 Color[_Color] }}}"); // // m_meshRenderer.material = FXMakerMain.inst.m_LineBackMaterial; // } if (m_lineMaterial == null) { // m_lineMaterial = new Material("Shader \"Lines/Colored Blended\" { SubShader { Pass { Blend SrcAlpha OneMinusSrcAlpha BindChannels { Bind \"Color\",color } ZWrite On Cull Front Fog { Mode Off } } } }"); m_lineMaterial = FXMakerMain.inst.m_LineColorMaterial; m_lineMaterial.hideFlags = HideFlags.HideAndDontSave; m_lineMaterial.shader.hideFlags = HideFlags.HideAndDontSave; } ArrayList linesArray = new ArrayList(); Mesh mesh; if (bParticle) { mesh = NgSerialized.GetParticleMesh(GetParticleComponent()); m_bWorldParticle = NgSerialized.GetSimulationSpaceWorld(m_BaseTrans); } else { mesh = m_BaseTrans.GetComponent <MeshFilter>().sharedMesh; } if (mesh != null) { Vector3[] vertices = mesh.vertices; int[] triangles = mesh.triangles; for (int i = 0; i < triangles.Length / 3; i++) { linesArray.Add(vertices[triangles[i * 3]]); linesArray.Add(vertices[triangles[i * 3 + 1]]); linesArray.Add(vertices[triangles[i * 3 + 2]]); } m_lines = NgConvert.ToArray <Vector3>(linesArray); } return(m_bWireframe); }
void LoadScriptList() { int nScriptCount; int nFindFolderCount; int nCount = 0; string scriptDir = FXMakerMain.inst.GetResourceDir(FXMakerMain.TOOLDIR_TYPE.SCRIPTS); // load folder string[] groupStrings = NgAsset.GetFolderList(scriptDir, null, "Hide", 0, out nFindFolderCount); m_GroupContents = NgConvert.StringsToContents(groupStrings); if (m_nGroupIndex < 0 || m_GroupContents.Length <= m_nGroupIndex) { m_nGroupIndex = 0; } if (m_GroupContents.Length == 0) { m_nGroupIndex = -1; } // load file if (m_GroupContents[m_nGroupIndex].text == "Unity") { List <string> addList = new List <string>(); // add UnityComponent addList.Add("MeshFilter"); addList.Add("MeshRenderer"); addList.Add(""); addList.Add("ParticleSystem"); addList.Add("ParticleSystemRenderer"); addList.Add("TrailRenderer"); addList.Add("LineRenderer"); addList.Add(""); addList.Add("EllipsoidParticleEmitter"); addList.Add("MeshParticleEmitter"); addList.Add("ParticleAnimator"); addList.Add("ParticleRenderer"); addList.Add(""); addList.Add("Rigidbody"); addList.Add("BoxCollider"); addList.Add("SphereCollider"); addList.Add("CapsuleCollider"); addList.Add("MeshCollider"); addList.Add("WorldParticleCollider"); addList.Add(""); addList.Add("Animation"); addList.Add("AudioSource"); m_ScriptScrings = new string[addList.Count]; m_ScriptContents = new GUIContent[addList.Count]; for (int n = 0; n < addList.Count; n++) { m_ScriptContents[n] = GetHelpContentScript(addList[n]); m_ScriptScrings[n] = addList[n]; } } else { string dir = (m_nGroupIndex < 0 ? scriptDir : NgFile.CombinePath(scriptDir, m_GroupContents[m_nGroupIndex].text + "/")); string[] scriptScrings = NgAsset.GetFileList(dir, 0, out nScriptCount); m_ScriptScrings = new string[scriptScrings.Length]; m_ScriptContents = new GUIContent[scriptScrings.Length]; for (int n = 0; n < scriptScrings.Length; n++) { // if (scriptScrings[n].Contains("Behaviour.")) // continue; string ext = Path.GetExtension(scriptScrings[n]); ext = ext.ToLower(); if (ext == ".cs" || ext == ".js") { m_ScriptContents[nCount] = GetHelpContentScript(NgFile.TrimFileExt(scriptScrings[n])); m_ScriptScrings[nCount] = NgFile.TrimFileExt(scriptScrings[n]); nCount++; } } m_ScriptScrings = NgConvert.ResizeArray(m_ScriptScrings, nCount); m_ScriptContents = NgConvert.ResizeArray(m_ScriptContents, nCount); } }
public static string[] LogPropertis(SerializedObject serObj, string startPropertyName, bool enterChildren) { if (serObj == null) { return(null); } string log = ""; SerializedProperty sp; bool bFirst = true; if (startPropertyName != null && startPropertyName != "") { sp = serObj.FindProperty(startPropertyName); } else { sp = serObj.GetIterator(); } while (true) { object value = GetPropertyValue(sp); log += string.Format("{0}{3}{4}{5} {1,-30} {2, 20} {6}\r\n", sp.depth, NgConvert.GetTabSpace(sp.depth + 1) + sp.name, (value == null ? "null" : value.ToString()), sp.editable, sp.isExpanded, sp.isArray, sp.propertyPath); if (sp.Next(bFirst) == false) { break; } bFirst = enterChildren; } { log = "=====================================================================\r\n" + log; log = log + "=====================================================================\r\n"; Debug.Log(log); } return(null); }
void winPopup(int id) { Rect baseRect = GetPopupRect(); Rect lineRect; int nMargin = 2; int nTopHeight = 1; int nLineCount = 25; int nIncLine = 0; string str; // if (UnfocusClose(baseRect, 5, 0, 0, 0)) // return; baseRect = FXMakerLayout.GetChildVerticalRect(baseRect, nTopHeight, 1, 0, 1); baseRect = FXMakerLayout.GetOffsetRect(baseRect, -nMargin); // Capture lineRect = FXMakerLayout.GetInnerVerticalRect(baseRect, nLineCount, nIncLine++, 1); NgGUIDraw.DrawHorizontalLine(new Vector2(lineRect.x, lineRect.y + lineRect.height - 1), (int)lineRect.width, Color.grey, 2, false); GUI.Label(FXMakerLayout.GetInnerHorizontalRect(lineRect, 10, 0, 3), "Capture"); // m_CaptureType lineRect = FXMakerLayout.GetInnerVerticalRect(baseRect, nLineCount, nIncLine++, 1); FXMakerLayout.GUIButton(FXMakerLayout.GetInnerHorizontalRect(lineRect, 10, 0, 3), GetHelpContent("CaptureType"), false); m_CaptureType = FXMakerLayout.GUIToggle(FXMakerLayout.GetInnerHorizontalRect(lineRect, 20, 7, 6), m_CaptureType == CAPTURE_TYPE.ANIMATION, new GUIContent("Animation"), true) ? CAPTURE_TYPE.ANIMATION : m_CaptureType; m_CaptureType = FXMakerLayout.GUIToggle(FXMakerLayout.GetInnerHorizontalRect(lineRect, 20, 13, 6), m_CaptureType == CAPTURE_TYPE.RANDOM, new GUIContent("Random"), true) ? CAPTURE_TYPE.RANDOM : m_CaptureType; // size 32, 64, 128, 256, 512 lineRect = FXMakerLayout.GetInnerVerticalRect(baseRect, nLineCount, nIncLine++, 1); FXMakerLayout.GUIButton(FXMakerLayout.GetInnerHorizontalRect(lineRect, 10, 0, 3), GetHelpContent("Size"), false); m_nCaptureSizeIndex = (int)GUI.HorizontalScrollbar(GetScrollbarRect(FXMakerLayout.GetInnerHorizontalRect(lineRect, 10, 3, 5)), m_nCaptureSizeIndex, 1, 0, m_nCaptureSizeValues.Length - 1); FXMakerLayout.GUIButton(FXMakerLayout.GetInnerHorizontalRect(lineRect, 10, 8, 2), m_nCaptureSizeValues[m_nCaptureSizeIndex].ToString(), false); if (m_CaptureType == CAPTURE_TYPE.ANIMATION) { // frame lineRect = FXMakerLayout.GetInnerVerticalRect(baseRect, nLineCount, nIncLine++, 1); FXMakerLayout.GUIButton(FXMakerLayout.GetInnerHorizontalRect(lineRect, 10, 0, 3), GetHelpContent("Fps"), false); m_nFrameCountIndex = (int)GUI.HorizontalScrollbar(GetScrollbarRect(FXMakerLayout.GetInnerHorizontalRect(lineRect, 10, 3, 5)), m_nFrameCountIndex, 1, 0, m_nFrameCountValues.Length); FXMakerLayout.GUIButton(FXMakerLayout.GetInnerHorizontalRect(lineRect, 10, 8, 2), m_nFrameCountValues[m_nFrameCountIndex].ToString(), false); // Get Time lineRect = FXMakerLayout.GetInnerVerticalRect(baseRect, nLineCount, nIncLine++, 1); if (FXMakerLayout.GUIButton(FXMakerLayout.GetInnerHorizontalRect(lineRect, 1, 0, 1), "Get Duration = " + FXMakerMain.inst.GetFXMakerControls().GetLastAutoRetTime().ToString("0.00"), true)) { m_fCaptureTime = System.Convert.ToSingle(FXMakerMain.inst.GetFXMakerControls().GetLastAutoRetTime().ToString("0.00")); } // Rescale Time lineRect = FXMakerLayout.GetInnerVerticalRect(baseRect, nLineCount, nIncLine++, 1); FXMakerLayout.GUIButton(FXMakerLayout.GetInnerHorizontalRect(lineRect, 10, 0, 3), GetHelpContent("Time"), false); m_fCaptureTime = GUI.HorizontalScrollbar(GetScrollbarRect(FXMakerLayout.GetInnerHorizontalRect(lineRect, 10, 3, 5)), m_fCaptureTime, GetFrameTime(), GetFrameTime(), m_fMaxCaptureTime); str = FXMakerLayout.GUITextField(FXMakerLayout.GetInnerHorizontalRect(lineRect, 10, 8, 2), m_fCaptureTime.ToString(), true).Trim(); m_fCaptureTime = NgConvert.ToFloat(str, m_fCaptureTime); // SkipFrameCount lineRect = FXMakerLayout.GetInnerVerticalRect(baseRect, nLineCount, nIncLine++, 1); FXMakerLayout.GUIButton(FXMakerLayout.GetInnerHorizontalRect(lineRect, 10, 0, 3), GetHelpContent("SkipFrame"), false); if (m_nTotalFrameCount <= m_nSkipFrameCount) { m_nSkipFrameCount = m_nTotalFrameCount - 1; } if (m_nTotalFrameCount <= 1) { m_nSkipFrameCount = 0; } else { m_nSkipFrameCount = (int)GUI.HorizontalScrollbar(GetScrollbarRect(FXMakerLayout.GetInnerHorizontalRect(lineRect, 10, 3, 5)), m_nSkipFrameCount, 1, 0, m_nTotalFrameCount); } FXMakerLayout.GUIButton(FXMakerLayout.GetInnerHorizontalRect(lineRect, 10, 8, 2), m_nSkipFrameCount.ToString(), false); // total m_nTotalFrameCount = (int)(m_fCaptureTime / GetFrameTime()) + 1; m_nSaveFrameCount = (m_nTotalFrameCount - m_nSkipFrameCount); m_nResultFps = m_nFrameCountValues[m_nFrameCountIndex]; } if (m_CaptureType == CAPTURE_TYPE.RANDOM) { // m_nRandomCaptureCount lineRect = FXMakerLayout.GetInnerVerticalRect(baseRect, nLineCount, nIncLine++, 1); FXMakerLayout.GUIButton(FXMakerLayout.GetInnerHorizontalRect(lineRect, 10, 0, 3), GetHelpContent("CaptureCount"), false); m_nRandomCaptureCount = (int)GUI.HorizontalScrollbar(GetScrollbarRect(FXMakerLayout.GetInnerHorizontalRect(lineRect, 10, 3, 5)), m_nRandomCaptureCount, 1, 1, m_fMaxRandomCaptureCount); FXMakerLayout.GUIButton(FXMakerLayout.GetInnerHorizontalRect(lineRect, 10, 8, 2), m_nRandomCaptureCount.ToString(), false); // SkipTime lineRect = FXMakerLayout.GetInnerVerticalRect(baseRect, nLineCount, nIncLine++, 1); FXMakerLayout.GUIButton(FXMakerLayout.GetInnerHorizontalRect(lineRect, 10, 0, 3), GetHelpContent("SkipTime"), false); m_fCaptureTime = GUI.HorizontalScrollbar(GetScrollbarRect(FXMakerLayout.GetInnerHorizontalRect(lineRect, 10, 3, 5)), m_fCaptureTime, 0.01f, 0, m_fMaxCaptureTime); str = FXMakerLayout.GUITextField(FXMakerLayout.GetInnerHorizontalRect(lineRect, 10, 8, 2), m_fCaptureTime.ToString(), true).Trim(); m_fCaptureTime = NgConvert.ToFloat(str, m_fCaptureTime); nIncLine += 2; // total m_nSkipFrameCount = 0; m_nTotalFrameCount = m_nRandomCaptureCount; m_nSaveFrameCount = m_nRandomCaptureCount; m_nResultFps = m_nFrameCountValues[m_nFrameCountIndex]; } // total frame lineRect = FXMakerLayout.GetInnerVerticalRect(baseRect, nLineCount, nIncLine++, 1); FXMakerLayout.GUIButton(FXMakerLayout.GetInnerHorizontalRect(lineRect, 10, 0, 3), GetHelpContent("TotalFrame"), false); FXMakerLayout.GUIButton(FXMakerLayout.GetInnerHorizontalRect(lineRect, 10, 3, 7), (m_nTotalFrameCount - m_nSkipFrameCount).ToString(), false); // m_nResultTextureSize m_nResultCaptureSize = m_nCaptureSizeValues[(int)m_nCaptureSizeIndex]; m_nResultTextureSize = NgAtlas.GetTextureSize(m_nSaveFrameCount, m_nResultCaptureSize); lineRect = FXMakerLayout.GetInnerVerticalRect(baseRect, nLineCount, nIncLine++, 1); FXMakerLayout.GUIButton(FXMakerLayout.GetInnerHorizontalRect(lineRect, 10, 0, 3), GetHelpContent("TextureSize"), false); FXMakerLayout.GUIButton(FXMakerLayout.GetInnerHorizontalRect(lineRect, 10, 3, 7), m_nResultTextureSize.ToString() + " x " + (m_nSaveFrameCount <= (m_nResultTextureSize / m_nResultCaptureSize) * (m_nResultTextureSize / m_nResultCaptureSize) / 2 ? m_nResultTextureSize / 2 : m_nResultTextureSize).ToString(), false); // ------------------------------------------------------------------------------------------------------------------------- // Output lineRect = FXMakerLayout.GetInnerVerticalRect(baseRect, nLineCount, nIncLine++, 1); NgGUIDraw.DrawHorizontalLine(new Vector2(lineRect.x, lineRect.y + lineRect.height - 1), (int)lineRect.width, Color.grey, 2, false); GUI.Label(FXMakerLayout.GetInnerHorizontalRect(lineRect, 10, 0, 3), "Output"); // bCreatePrefab lineRect = FXMakerLayout.GetInnerVerticalRect(baseRect, nLineCount, nIncLine++, 1); FXMakerLayout.GUIButton(FXMakerLayout.GetInnerHorizontalRect(lineRect, 10, 0, 3), GetHelpContent("Create"), false); m_bCreatePrefab = FXMakerLayout.GUIToggle(FXMakerLayout.GetInnerHorizontalRect(lineRect, 20, 7, 6), m_bCreatePrefab, new GUIContent("Prefab"), true); m_bCreatePrefab = !FXMakerLayout.GUIToggle(FXMakerLayout.GetInnerHorizontalRect(lineRect, 20, 13, 6), !m_bCreatePrefab, new GUIContent("Texture"), true); // PlayMode lineRect = FXMakerLayout.GetInnerVerticalRect(baseRect, nLineCount, nIncLine++, 1); FXMakerLayout.GUIButton(FXMakerLayout.GetInnerHorizontalRect(lineRect, 10, 0, 3), GetHelpContent("PlayMode"), false); if (FXMakerLayout.GUIToggle(FXMakerLayout.GetInnerHorizontalRect(lineRect, 20, 7, 6), (m_bCreatePrefab && m_PlayMode == NcSpriteAnimation.PLAYMODE.DEFAULT), new GUIContent("Default"), m_bCreatePrefab)) { m_PlayMode = NcSpriteAnimation.PLAYMODE.DEFAULT; } if (FXMakerLayout.GUIToggle(FXMakerLayout.GetInnerHorizontalRect(lineRect, 20, 13, 6), (m_bCreatePrefab && m_PlayMode == NcSpriteAnimation.PLAYMODE.INVERSE), new GUIContent("Inverse"), m_bCreatePrefab)) { m_PlayMode = NcSpriteAnimation.PLAYMODE.INVERSE; } lineRect = FXMakerLayout.GetInnerVerticalRect(baseRect, nLineCount, nIncLine++, 1); if (FXMakerLayout.GUIToggle(FXMakerLayout.GetInnerHorizontalRect(lineRect, 20, 7, 6), (m_bCreatePrefab && m_PlayMode == NcSpriteAnimation.PLAYMODE.PINGPONG), new GUIContent("PingPong"), m_bCreatePrefab)) { m_PlayMode = NcSpriteAnimation.PLAYMODE.PINGPONG; } if (FXMakerLayout.GUIToggle(FXMakerLayout.GetInnerHorizontalRect(lineRect, 20, 13, 6), (m_bCreatePrefab && m_PlayMode == NcSpriteAnimation.PLAYMODE.RANDOM), new GUIContent("Random"), m_bCreatePrefab)) { m_PlayMode = NcSpriteAnimation.PLAYMODE.RANDOM; } // Loop lineRect = FXMakerLayout.GetInnerVerticalRect(baseRect, nLineCount, nIncLine++, 1); FXMakerLayout.GUIButton(FXMakerLayout.GetInnerHorizontalRect(lineRect, 10, 0, 3), GetHelpContent("Loop"), false); if (m_bCreatePrefab) { m_bLoop = !FXMakerLayout.GUIToggle(FXMakerLayout.GetInnerHorizontalRect(lineRect, 20, 7, 6), (m_bCreatePrefab && !m_bLoop), new GUIContent("Once"), m_bCreatePrefab); m_bLoop = FXMakerLayout.GUIToggle(FXMakerLayout.GetInnerHorizontalRect(lineRect, 20, 13, 6), (m_bCreatePrefab && m_bLoop), new GUIContent("Loop"), m_bCreatePrefab); } else { FXMakerLayout.GUIToggle(FXMakerLayout.GetInnerHorizontalRect(lineRect, 20, 7, 6), (m_bCreatePrefab && m_bLoop), new GUIContent("Once"), m_bCreatePrefab); FXMakerLayout.GUIToggle(FXMakerLayout.GetInnerHorizontalRect(lineRect, 20, 13, 6), (m_bCreatePrefab && !m_bLoop), new GUIContent("Loop"), m_bCreatePrefab); } // Shader lineRect = FXMakerLayout.GetInnerVerticalRect(baseRect, nLineCount, nIncLine++, 1); FXMakerLayout.GUIButton(FXMakerLayout.GetInnerHorizontalRect(lineRect, 10, 0, 3), GetHelpContent("Shader"), false); if (m_bCreatePrefab) { m_ShaderType = FXMakerLayout.GUIToggle(FXMakerLayout.GetInnerHorizontalRect(lineRect, 20, 7, 7), (m_bCreatePrefab && m_ShaderType == SHADER_TYPE.ADDITIVE), new GUIContent("Additive"), m_bCreatePrefab) ? SHADER_TYPE.ADDITIVE : m_ShaderType; m_ShaderType = FXMakerLayout.GUIToggle(FXMakerLayout.GetInnerHorizontalRect(lineRect, 20, 13, 7), (m_bCreatePrefab && m_ShaderType == SHADER_TYPE.ADDITIVE_MOBILE), new GUIContent("AdditiveMobile"), m_bCreatePrefab) ? SHADER_TYPE.ADDITIVE_MOBILE : m_ShaderType; lineRect = FXMakerLayout.GetInnerVerticalRect(baseRect, nLineCount, nIncLine++, 1); m_ShaderType = FXMakerLayout.GUIToggle(FXMakerLayout.GetInnerHorizontalRect(lineRect, 20, 7, 7), (m_bCreatePrefab && m_ShaderType == SHADER_TYPE.ADDITIVE_SOFT), new GUIContent("AdditiveSoft"), m_bCreatePrefab) ? SHADER_TYPE.ADDITIVE_SOFT : m_ShaderType; m_ShaderType = FXMakerLayout.GUIToggle(FXMakerLayout.GetInnerHorizontalRect(lineRect, 20, 13, 7), (m_bCreatePrefab && m_ShaderType == SHADER_TYPE.ALPHA_BLENDED), new GUIContent("AlphaBlended"), m_bCreatePrefab) ? SHADER_TYPE.ALPHA_BLENDED : m_ShaderType; lineRect = FXMakerLayout.GetInnerVerticalRect(baseRect, nLineCount, nIncLine++, 1); m_ShaderType = FXMakerLayout.GUIToggle(FXMakerLayout.GetInnerHorizontalRect(lineRect, 20, 7, 13), (m_bCreatePrefab && m_ShaderType == SHADER_TYPE.ALPHA_BLENDED_MOBILE), new GUIContent("AlphaBlendedMobile"), m_bCreatePrefab) ? SHADER_TYPE.ALPHA_BLENDED_MOBILE : m_ShaderType; } else { FXMakerLayout.GUIToggle(FXMakerLayout.GetInnerHorizontalRect(lineRect, 20, 7, 5), (m_bCreatePrefab && m_ShaderType == SHADER_TYPE.ADDITIVE), new GUIContent("Additive"), m_bCreatePrefab); FXMakerLayout.GUIToggle(FXMakerLayout.GetInnerHorizontalRect(lineRect, 20, 12, 4), (m_bCreatePrefab && m_ShaderType == SHADER_TYPE.ADDITIVE_MOBILE), new GUIContent("Mobile"), m_bCreatePrefab); FXMakerLayout.GUIToggle(FXMakerLayout.GetInnerHorizontalRect(lineRect, 20, 17, 3), (m_bCreatePrefab && m_ShaderType == SHADER_TYPE.ADDITIVE_SOFT), new GUIContent("Soft"), m_bCreatePrefab); lineRect = FXMakerLayout.GetInnerVerticalRect(baseRect, nLineCount, nIncLine++, 1); FXMakerLayout.GUIToggle(FXMakerLayout.GetInnerHorizontalRect(lineRect, 20, 7, 7), (m_bCreatePrefab && m_ShaderType == SHADER_TYPE.ALPHA_BLENDED), new GUIContent("AlphaBlended"), m_bCreatePrefab); FXMakerLayout.GUIToggle(FXMakerLayout.GetInnerHorizontalRect(lineRect, 20, 14, 7), (m_bCreatePrefab && m_ShaderType == SHADER_TYPE.ALPHA_BLENDED_MOBILE), new GUIContent("AlphaBlendedMobile"), m_bCreatePrefab); } // Fade lineRect = FXMakerLayout.GetInnerVerticalRect(baseRect, nLineCount, nIncLine++, 1); bool bFade = (m_bCreatePrefab && m_ShaderType == SHADER_TYPE.ADDITIVE || m_bCreatePrefab && m_ShaderType == SHADER_TYPE.ALPHA_BLENDED); FXMakerLayout.GUIButton(FXMakerLayout.GetInnerHorizontalRect(lineRect, 10, 0, 3), GetHelpContent("Fade"), false); if (bFade) { m_bFadeIn = FXMakerLayout.GUIToggle(FXMakerLayout.GetInnerHorizontalRect(lineRect, 20, 7, 6), m_bFadeIn, new GUIContent("FadeIn"), bFade); m_bFadeOut = FXMakerLayout.GUIToggle(FXMakerLayout.GetInnerHorizontalRect(lineRect, 20, 13, 6), m_bFadeOut, new GUIContent("FadeOut"), bFade); } else { FXMakerLayout.GUIToggle(FXMakerLayout.GetInnerHorizontalRect(lineRect, 20, 7, 6), false, new GUIContent("FadeIn"), bFade); FXMakerLayout.GUIToggle(FXMakerLayout.GetInnerHorizontalRect(lineRect, 20, 13, 6), false, new GUIContent("FadeOut"), bFade); } // Texture Format --------------------------------------------------------------------------------------- // TextureType lineRect = FXMakerLayout.GetInnerVerticalRect(baseRect, nLineCount, nIncLine++, 1); FXMakerLayout.GUIButton(FXMakerLayout.GetInnerHorizontalRect(lineRect, 10, 0, 3), GetHelpContent("TextureType"), false); m_bGUITexture = FXMakerLayout.GUIToggle(GetToggleRect(FXMakerLayout.GetInnerHorizontalRect(lineRect, 20, 7, 6)), m_bGUITexture, new GUIContent("GUI"), true); m_bGUITexture = !FXMakerLayout.GUIToggle(GetToggleRect(FXMakerLayout.GetInnerHorizontalRect(lineRect, 20, 13, 6)), !m_bGUITexture, new GUIContent("Texture"), true); // AnisoLevel lineRect = FXMakerLayout.GetInnerVerticalRect(baseRect, nLineCount, nIncLine++, 1); FXMakerLayout.GUIButton(FXMakerLayout.GetInnerHorizontalRect(lineRect, 10, 0, 3), GetHelpContent("AnisoLevel"), false); if (!m_bGUITexture) { m_anisoLevel = (int)GUI.HorizontalScrollbar(GetScrollbarRect(FXMakerLayout.GetInnerHorizontalRect(lineRect, 10, 3, 5)), m_anisoLevel, 1, 0, 9 + 1); FXMakerLayout.GUIButton(FXMakerLayout.GetInnerHorizontalRect(lineRect, 10, 8, 2), m_anisoLevel.ToString(), false); } // m_nSpriteTextureSizes lineRect = FXMakerLayout.GetInnerVerticalRect(baseRect, nLineCount, nIncLine++, 1); FXMakerLayout.GUIButton(FXMakerLayout.GetInnerHorizontalRect(lineRect, 10, 0, 3), GetHelpContent("MaxSize"), false); m_fSpriteTextureIndex = GUI.HorizontalScrollbar(GetScrollbarRect(FXMakerLayout.GetInnerHorizontalRect(lineRect, 10, 3, 5)), m_fSpriteTextureIndex, 1, 0, m_nSpriteTextureSizes.Length - 1); FXMakerLayout.GUIButton(FXMakerLayout.GetInnerHorizontalRect(lineRect, 10, 8, 2), m_nSpriteTextureSizes[(int)m_fSpriteTextureIndex].ToString(), false); // m_nSpriteTextureFormat lineRect = FXMakerLayout.GetInnerVerticalRect(baseRect, nLineCount, nIncLine++, 1); FXMakerLayout.GUIButton(FXMakerLayout.GetInnerHorizontalRect(lineRect, 10, 0, 3), GetHelpContent("Format"), false); lineRect = FXMakerLayout.GetInnerVerticalRect(baseRect, nLineCount, nIncLine++, 1); for (int n = 0; n < m_SpriteTextureFormatName.Length; n++) { Rect toggleRect = GetToggleRect(FXMakerLayout.GetInnerHorizontalRect(lineRect, 3, n, 1)); if (n == 2) { toggleRect.x -= 15; toggleRect.width += 15; } bool bCheck = (GUI.Toggle(toggleRect, (m_fSpriteTextureFormatIdx == n), m_SpriteTextureFormatName[n])); if (bCheck && m_fSpriteTextureFormatIdx != n) { m_fSpriteTextureFormatIdx = n; // EditorPrefs.SetInt("FxmSpritePopup.m_nShowGameObjectOptionIndex", m_nShowGameObjectOptionIndex); } } nIncLine++; lineRect = FXMakerLayout.GetInnerVerticalRect(baseRect, nLineCount, nIncLine++, 1); lineRect = FXMakerLayout.GetOffsetRect(lineRect, 0, -12, 0, 0); if (FXMakerLayout.GUIButton(FXMakerLayout.GetInnerHorizontalRect(lineRect, 2, 0, 1), "Build Sprite", (m_nResultTextureSize <= 2048))) { FXMakerCapture.StartSpriteCapture(m_CaptureType, m_nTotalFrameCount, (m_CaptureType == CAPTURE_TYPE.ANIMATION ? GetFrameTime() : m_fCaptureTime), GetSpriteCaptureRect()); ClosePopup(); } if (FXMakerLayout.GUIButton(FXMakerLayout.GetInnerHorizontalRect(lineRect, 2, 1, 1), "Close", true)) { ClosePopup(); } FXMakerMain.inst.SaveTooltip(); }
public override void OnInspectorGUI() { AddScriptNameField(m_Sel); m_UndoManager.CheckUndo(); // -------------------------------------------------------------- EditorGUI.BeginChangeCheck(); { // DrawDefaultInspector(); m_Sel.m_nPlayIndex = EditorGUILayout.Popup("PlayType", m_Sel.m_nPlayIndex, m_Sel.GetPlayContents(), GUILayout.MaxWidth(Screen.width)); m_Sel.m_nTransIndex = EditorGUILayout.Popup("PlayType", m_Sel.m_nTransIndex, NgConvert.ContentsToStrings(FxmTestControls.GetHcEffectControls_Trans(m_Sel.m_nTransAxis)), GUILayout.MaxWidth(Screen.width)); m_Sel.m_nTransAxis = (FxmTestControls.AXIS)EditorGUILayout.EnumPopup("TransAxis", m_Sel.m_nTransAxis, GUILayout.MaxWidth(Screen.width)); m_Sel.m_fTransRate = EditorGUILayout.FloatField("MaxDistance", m_Sel.m_fTransRate); m_Sel.m_fStartPosition = EditorGUILayout.FloatField("StartPosition", m_Sel.m_fStartPosition); m_Sel.m_fDistPerTime = EditorGUILayout.FloatField("DistPerTime", m_Sel.m_fDistPerTime); m_Sel.m_nRotateIndex = EditorGUILayout.Popup("RotateIndex", m_Sel.m_nRotateIndex, new string[] { "Rot", "Fix" }, GUILayout.MaxWidth(Screen.width)); m_Sel.m_nMultiShotCount = EditorGUILayout.IntField("MultiShotCount", m_Sel.m_nMultiShotCount); } m_UndoManager.CheckDirty(); }