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(); }
// ========================================================================================================== protected void DrawFolderList(Rect baseRect) { if (m_nProjectCount <= 0) { return; } Rect rect; int nPRowCount = (m_nProjectCount / m_nProjectColumn + (0 < (m_nProjectCount % m_nProjectColumn) ? 1 : 0)); int nGRowCount = (m_nGroupCount / m_nGroupColumn + (0 < (m_nGroupCount % m_nGroupColumn) ? 1 : 0)); // Group Project rect = FXMakerLayout.GetInnerTopRect(baseRect, 0, nPRowCount * m_nMenuButtonHeight); // int nProjectIndex = GUI.SelectionGrid(rect, m_nProjectIndex, m_ProjectFolerContents, m_nProjectColumn); int nProjectIndex = FXMakerLayout.TooltipSelectionGrid(GetPopupRect(), rect, m_nProjectIndex, m_ProjectFolerContents, m_nProjectColumn); if (m_nProjectIndex != nProjectIndex) { SetProjectIndex(nProjectIndex, false); } if (m_bDrawRedProject) { NgGUIDraw.DrawBox(FXMakerLayout.GetOffsetRect(rect, 3), FXMakerLayout.m_ColorHelpBox, 2, false); } // Draw line rect = FXMakerLayout.GetInnerTopRect(baseRect, nPRowCount * m_nMenuButtonHeight, m_nMenuButtonHeight); NgGUIDraw.DrawHorizontalLine(new Vector2(rect.x, rect.y + m_nMenuButtonHeight / 4 + 1), (int)rect.width, new Color(0.1f, 0.1f, 0.1f, 0.7f), 2, false); // ResizePopup, Recursively , ScrollColumn rect = FXMakerLayout.GetInnerTopRect(baseRect, nPRowCount * m_nMenuButtonHeight + m_nMenuButtonHeight / 3, m_nMenuButtonHeight); rect = FXMakerLayout.GetOffsetRect(rect, 0, rect.height / 5, 0, 0); bool bOldOptionRecursively = m_bOptionRecursively; int nLeftSize = 195; Rect resizeRect = rect; Rect toggleRect; resizeRect.width = nLeftSize; string[] resizeStrings = { "1", "2", "3", "4", "5" }; GUIStyle resizeStyle = GUI.skin.GetStyle("Popup_ResizePopup"); int nPopupColumn = (int)GUI.SelectionGrid(FXMakerLayout.GetInnerHorizontalRect(resizeRect, 40, 0, 20), m_nPopupColumn - 2, resizeStrings, 5, resizeStyle) + 2; if (GUI.changed && m_nPopupColumn != nPopupColumn) { UpdatePopupColumn(nPopupColumn); } if (4 < m_nPopupColumn) { toggleRect = FXMakerLayout.GetInnerHorizontalRect(resizeRect, 40, 21, 19); m_bOptionRecursively = FXMakerLayout.GUIToggle(toggleRect, m_bOptionRecursively, GetHelpContent("Recursively"), (m_bFixedOptionRecursively == false)); if (GUI.changed && bOldOptionRecursively != m_bOptionRecursively) { SavePrefs(); SetGroupIndex(0); } toggleRect.x += toggleRect.width; m_bOptionShowName = FXMakerLayout.GUIToggle(toggleRect, m_bOptionShowName, GetHelpContent("ShowName"), !m_bDisableOptionShowName); if (GUI.changed) { SavePrefs(); } } else { toggleRect = FXMakerLayout.GetInnerHorizontalRect(resizeRect, 40, 21, 19); toggleRect.y -= 5; m_bOptionRecursively = FXMakerLayout.GUIToggle(toggleRect, m_bOptionRecursively, GetHelpContent("Recursively"), (m_bFixedOptionRecursively == false)); if (GUI.changed && bOldOptionRecursively != m_bOptionRecursively) { SavePrefs(); SetGroupIndex(0); } toggleRect.y += 12; m_bOptionShowName = FXMakerLayout.GUIToggle(toggleRect, m_bOptionShowName, GetHelpContent("ShowName"), !m_bDisableOptionShowName); if (GUI.changed) { SavePrefs(); } } if (nLeftSize < (rect.width - nLeftSize)) { nLeftSize = (int)rect.width - nLeftSize; } int nObjectColumn = (int)GUI.HorizontalScrollbar(FXMakerLayout.GetOffsetRect(rect, nLeftSize, 1, 0, -2), m_nObjectColumn, 1, 1, m_nMaxObjectColumn + 1); if (GUI.changed && m_nObjectColumn != nObjectColumn) { m_nObjectColumn = nObjectColumn; SavePrefs(); if (m_nSelObjectGroupIndex == -1 && m_bOptionRecursively && 0 < m_nObjectCount) { Rect scrollRect = FXMakerLayout.GetAspectScrollViewRect((int)baseRect.width, m_fButtonAspect, m_ObjectContents.Length, m_nObjectColumn, false); m_ObjectListScrollPos.y = scrollRect.height * (m_nObjectIndex - m_nObjectColumn) / (float)m_nObjectCount; } } // Draw line rect = FXMakerLayout.GetInnerTopRect(baseRect, nPRowCount * m_nMenuButtonHeight + m_nMenuButtonHeight + m_nMenuButtonHeight / 3, m_nMenuButtonHeight); NgGUIDraw.DrawHorizontalLine(new Vector2(rect.x, rect.y + m_nMenuButtonHeight / 4 + 1), (int)rect.width, new Color(0.1f, 0.1f, 0.1f, 0.7f), 2, false); // Group List if (m_nGroupCount <= 0) { return; } if (m_bOptionRecursively == false) { rect = FXMakerLayout.GetInnerTopRect(baseRect, nPRowCount * m_nMenuButtonHeight + m_nMenuButtonHeight + m_nMenuButtonHeight, nGRowCount * m_nMenuButtonHeight); // int nGroupIndex = GUI.SelectionGrid(rect, m_nGroupIndex, m_GroupFolderContents, m_nGroupColumn); int nGroupIndex = FXMakerLayout.TooltipSelectionGrid(GetPopupRect(), rect, m_nGroupIndex, m_GroupFolderContents, m_nGroupColumn); if (m_nGroupIndex != nGroupIndex) { SetGroupIndex(nGroupIndex); } if (m_bDrawRedGroup) { NgGUIDraw.DrawBox(FXMakerLayout.GetOffsetRect(rect, 3), FXMakerLayout.m_ColorHelpBox, 2, false); } } }
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); }
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); }