示例#1
0
    // ==========================================================================================================
    // Project의 특정폴더 밑에 있는 모든 폴더명을 가져온다.
    public static string[] GetFolderList(string strDir, string inclusiveName, string exclusiveName, int nMinArrayCount, out int nFindFolder)
    {
#if UNITY_WEBPLAYER
        Debug.LogError("In WEB_PLAYER mode, you cannot run the FXMaker.");
        Debug.Break();
        nFindFolder = 0;
        return(null);
#else
        if (strDir[strDir.Length - 1] != '/' && strDir[strDir.Length - 1] != '\\')
        {
            strDir = strDir + "/";
        }

        int           nCount = 0;
        DirectoryInfo dir    = new DirectoryInfo(strDir);

        // CheckDir
        if (dir.Exists == false)
        {
            Debug.LogError("Directory not found - " + strDir);
        }

        DirectoryInfo[] info    = dir.GetDirectories();
        List <string>   strList = new List <string>();

        NgUtil.LogDevelop("GetFolderList() - " + strDir);

        // 프로젝트 폴더명 로드
        foreach (DirectoryInfo dirInfo in info)
        {
//			gUtil.LogDevelop("GetFolderList() - FindFolder - " + dirInfo.Name);
            if (exclusiveName != null && dirInfo.Name.Contains(exclusiveName) == true)
            {
                continue;
            }
            if (inclusiveName != null && dirInfo.Name.Contains(inclusiveName) == false)
            {
                continue;
            }
            strList.Add(dirInfo.Name);
            nCount++;
        }
        string[] folderStrings = new string[Mathf.Max(nMinArrayCount, strList.Count)];
        folderStrings = strList.ToArray();
        if (strList.Count < nMinArrayCount)
        {
            folderStrings = NgConvert.ResizeArray <string>(folderStrings, nMinArrayCount);
        }
        nFindFolder = nCount;
        return(folderStrings);
#endif
    }
示例#2
0
    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 void AddSharedMaterial(Renderer tarRenderer)
 {
     Material[] currentMats = tarRenderer.sharedMaterials;
     currentMats = NgConvert.ResizeArray <Material>(currentMats, currentMats.Length + 1);
     tarRenderer.sharedMaterials = currentMats;
 }
示例#4
0
    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);
    }