コード例 #1
0
    // ----------------------------------------------------------------------------------------------------------
    protected override void SetActiveObject(int nObjectIndex)
    {
        if (nObjectIndex < 0 || m_nObjectCount <= nObjectIndex)
        {
            return;
        }

        GameObject selCurveAniObj = m_CurveAniObjects[nObjectIndex];

        // right button, image Ping and not select
        if (Input.GetMouseButtonUp(1))
        {
            FXMakerAsset.SetPingObject(selCurveAniObj);
            return;
        }

        // 같은것 재클릭
        if (m_nObjectIndex == nObjectIndex)
        {
            FXMakerAsset.SetPingObject(m_CurrentCurveAnimation);
            FXMakerMain.inst.CreateCurrentInstanceEffect(true);
            return;
        }

        SetCurveAni(selCurveAniObj);
        FXMakerMain.inst.CreateCurrentInstanceEffect(true);

        m_nObjectIndex           = nObjectIndex;
        m_nSelObjectProjectIndex = m_nProjectIndex;
        m_nSelObjectGroupIndex   = (m_bOptionRecursively ? -1 : m_nGroupIndex);
        m_SelObjectContent       = new GUIContent(m_ObjectContents[nObjectIndex].text, m_ObjectContents[nObjectIndex].image, m_ObjectContents[nObjectIndex].tooltip);
    }
コード例 #2
0
    public string PasteClipboardPrefab(string tarPath)
    {
        string rePath = FXMakerAsset.CopyEffectPrefab(m_PrefabObject, tarPath, m_bPrefabCutCopy);

        ClearClipboard();
        return(rePath);
    }
コード例 #3
0
    public void SetCloneObject(int nCloneIndex, GameObject prefab)
    {
        // 扁粮 巴 昏力
        if (m_ChildObjects[nCloneIndex] != null)
        {
            Object.DestroyImmediate(m_ChildObjects[nCloneIndex]);
            m_ChildObjects[nCloneIndex]        = null;
            m_CloneThumbFilenames[nCloneIndex] = "";
        }

        // 货肺款 瞒老靛 殿废
        if (prefab != null)
        {
            m_ChildObjects[nCloneIndex] = NgAsset.LoadPrefab(prefab, gameObject);
            NgObject.SetActiveRecursively(m_ChildObjects[nCloneIndex], true);
            m_ChildObjects[nCloneIndex].name = m_ChildObjects[nCloneIndex].name.Replace("(Clone)", "");

            // 荤侩等 prefab苞 GameObject甫 急琶茄促.
            FXMakerAsset.SetPingObject(prefab, m_ChildObjects[nCloneIndex]);

            // thumb 免仿阑 困秦辑 盔夯prefab狼 guid甫 历厘秦 敌促.
            m_CloneThumbFilenames[nCloneIndex] = NgAsset.GetPrefabThumbFilename(prefab);
        }
        FXMakerBackground.inst.SaveBackgroundPrefab();
    }
コード例 #4
0
    public static void EndSpriteCapture(int nSpriteCaptureCount)
    {
        FxmSpritePopup spritePopup = FxmPopupManager.inst.GetSpritePopup();

        // Save Capture
        FXMakerEffect.inst.SaveProject();
        string path = spritePopup.EndCapture(m_SpriteTextures);

        // Restore gui
        Camera.main.backgroundColor = m_SpriteOldBackColor;
        FXMakerMain.inst.GetComponent <FXMakerEffect>().enabled = true;
        FXMakerMain.inst.GetComponentInChildren <FXMakerGizmo>().SetSpriteCaptureState(false);
        FXMakerMain.inst.GetFXMakerControls().SetTimeScale(m_fOldTime);

        // select
        if (spritePopup.m_bCreatePrefab)
        {
            FXMakerEffect.inst.LoadProject(path);
        }
        else
        {
            FXMakerEffect.inst.LoadProject();
            if (path != "")
            {
                Object obj = AssetDatabase.LoadAssetAtPath(path, typeof(Texture));
                FXMakerAsset.SetPingObject(obj);
            }
        }
    }
コード例 #5
0
    public bool SaveProject()
    {
        if (m_bChangePrefab == false)
        {
            return(false);
        }
        if (FXMakerMain.inst.GetOriginalEffectObject() == null || FXMakerMain.inst.GetOriginalEffectPrefab() == null)
        {
            return(false);
        }

        if (0 < IsReadOnlyFolder())
        {
            NgUtil.LogMessage(FXMakerTooltip.GetHsToolMessage("READONLY_NOTSAVE", ""));
        }
        else
        {
            if (0 <= m_nEffectIndex && m_nEffectIndex < m_nEffectCount)
            {
                NgUtil.LogDevelop("SaveProject - FXMaker prefab");
                m_EffectPrefabs[m_nEffectIndex] = FXMakerAsset.SaveEffectPrefab(FXMakerMain.inst.GetOriginalEffectObject(), FXMakerMain.inst.GetOriginalEffectPrefab());
                // clear current
                FXMakerMain.inst.ClearCurrentEffectObject(m_CurrentEffectRoot, true);
                SetCurrentEffectPrefab(m_EffectPrefabs[m_nEffectIndex]);
                // Baground Reload
                FXMakerBackground.inst.UpdateBackground();
                return(true);
            }
        }
        return(false);
    }
コード例 #6
0
    void CreateNewShaderMaterials(Material currentMat)
    {
        if (m_NewShaderMaterials != null && FXMakerOption.inst.m_bUpdateNewMaterial == false)
        {
            return;
        }

        // Load m_DefaultShaderMaterialsDir
        int nMaterialCount;

        m_NewShaderMaterials        = NgAsset.GetMaterialList(FXMakerMain.inst.GetResourceDir(FXMakerMain.TOOLDIR_TYPE.DEFAULTSHADERMATERIALS), true, 0, out nMaterialCount);
        m_NewShaderMaterialContents = null;

        // Change Texture
        if (m_NewShaderMaterials != null)
        {
            foreach (Material mat in m_NewShaderMaterials)
            {
                NgMaterial.CopyMaterialArgument(currentMat, mat);
            }

            FXMakerAsset.AssetDatabaseSaveAssets();
            m_nTempSaveFrameIndex       = FXMakerMain.inst.GetUnityFrameCount();
            m_NewShaderMaterialContents = new GUIContent[m_NewShaderMaterials.Length];
            // build content
            BuildNewShaderContents();
        }
    }
コード例 #7
0
ファイル: FXMakerMain.cs プロジェクト: rahul-sinha1908/rugby
	public void SetCurrentEffectPrefab(GameObject setPrefab, GameObject effectRoot, bool bUpdateOnlyPrefab)
	{
		if (m_bApplicationQuit)
			return;

		if (IsStartTooMain() || setPrefab == null)
			return;

		m_OriginalEffectPrefab	= setPrefab;
		if (bUpdateOnlyPrefab)
			return;

		NcEffectBehaviour.PreloadTexture(setPrefab);

		m_OriginalEffectObject	= NgAsset.LoadPrefab(setPrefab, effectRoot);
		m_OriginalEffectObject.name = m_OriginalEffectObject.name.Replace("(Clone)", "(Original)");
		NgObject.SetActiveRecursively(m_OriginalEffectObject, false);

		if (IsLoadingProject() == false)
			FXMakerAsset.SetPingObject(m_OriginalEffectObject);

		// EffectHierarchy
		if (GetFXMakerHierarchy() != null)
			GetFXMakerHierarchy().ShowHierarchy(m_OriginalEffectObject);
		// Create ShowObject
		CreateCurrentInstanceEffect(true);
	}
コード例 #8
0
ファイル: FXMakerEffect.cs プロジェクト: PenpenLi/Dczg
    void ClonePrefab()
    {
        SaveProject();
        string createPath = FXMakerAsset.CloneEffectPrefab(FXMakerMain.inst.GetOriginalEffectPrefab());

        SelectToolbar(m_nProjectIndex, GetGroupIndex(), createPath);
    }
コード例 #9
0
    public void SetCloneObject(int nCloneIndex, GameObject prefab)
    {
        // 기존 것 삭제
        if (m_ChildObjects[nCloneIndex] != null)
        {
            Object.DestroyImmediate(m_ChildObjects[nCloneIndex]);
            m_ChildObjects[nCloneIndex]        = null;
            m_CloneThumbFilenames[nCloneIndex] = "";
        }

        // 새로운 차일드 등록
        if (prefab != null)
        {
            m_ChildObjects[nCloneIndex] = NgAsset.LoadPrefab(prefab, gameObject);
            NgObject.SetActiveRecursively(m_ChildObjects[nCloneIndex], true);
            m_ChildObjects[nCloneIndex].name = m_ChildObjects[nCloneIndex].name.Replace("(Clone)", "");

            // 사용된 prefab과 GameObject를 선택한다.
            FXMakerAsset.SetPingObject(prefab, m_ChildObjects[nCloneIndex]);

            // thumb 출력을 위해서 원본prefab의 guid를 저장해 둔다.
            m_CloneThumbFilenames[nCloneIndex] = NgAsset.GetPrefabThumbFilename(prefab);
        }
        FXMakerBackground.inst.SaveBackgroundPrefab();
    }
コード例 #10
0
    void ClonePrefab()
    {
        SaveProject();
        string createPath = FXMakerAsset.CloneEffectPrefab(m_BackgroundPrefabs[m_nBackgroundIndex]);

        SelectToolbar(m_nGroupIndex, createPath);
    }
コード例 #11
0
    void SaveAddCurvePrefab(bool bOverwrite)
    {
        if (m_nProjectIndex < 0)
        {
            return;
        }

        GameObject       saveObj = (GameObject)PrefabUtility.InstantiatePrefab(m_CurveAniObjects[m_nProjectIndex]);
        NcCurveAnimation saveCom;
        int nSaveIndex;

        // add component
        if (m_bOnlyCurve)
        {
            saveCom = saveObj.GetComponent <NcCurveAnimation>();
            if (saveCom == null)
            {
                saveCom = saveObj.AddComponent <NcCurveAnimation>();
            }
        }
        else
        {
            NcCurveAnimation[] curveAnis = saveObj.GetComponents <NcCurveAnimation>();
            if (curveAnis.Length < NcCurveAnimation.NcInfoCurve.m_TypeName.Length)
            {
                for (int n = curveAnis.Length; n < NcCurveAnimation.NcInfoCurve.m_TypeName.Length; n++)
                {
                    saveObj.AddComponent <NcCurveAnimation>();
                }
                curveAnis = saveObj.GetComponents <NcCurveAnimation>();
            }
            saveCom = curveAnis[(int)m_OriCurveInfo.m_ApplyType];
        }

        if (bOverwrite)
        {
            // update curve
            nSaveIndex = m_CurveInfos[m_nObjectIndex].m_nTag;
            saveCom.SetCurveInfo(nSaveIndex, m_OriCurveInfo);
            nSaveIndex = m_nObjectIndex;
        }
        else
        {
            // add curve
            nSaveIndex = saveCom.AddCurveInfo(m_OriCurveInfo);
        }
        saveCom.SortCurveInfo();

        // change Enabled
        saveCom.GetCurveInfo(nSaveIndex).m_bEnabled = true;

        PrefabUtility.ReplacePrefab(saveObj, m_CurveAniObjects[m_nProjectIndex]);
        FXMakerAsset.AssetDatabaseSaveAssets();
        DestroyImmediate(saveObj);
    }
コード例 #12
0
    void SetSelectedTransformMaterial(Material selMaterial)
    {
        Material[] mats = m_SelectedTransform.GetComponent <Renderer>().sharedMaterials;

        m_SelectedMaterial           = selMaterial;
        mats[m_nSelRendererMatIndex] = selMaterial;
        m_SelectedTransform.GetComponent <Renderer>().sharedMaterials = mats;
//      m_SelectedTransform.renderer.sharedMaterial = selMaterial;
        FXMakerHierarchy.inst.SetActiveComponent(m_SelectedTransform.gameObject, m_SelectedMaterial, false);
        FXMakerAsset.SetPingObject(m_SelectedMaterial);
    }
コード例 #13
0
 public void SetPingObject(int nChildIndex)
 {
     if (nChildIndex < FXMakerBackground.m_CloneTypeCount)
     {
         FXMakerAsset.SetPingObject(m_ChildObjects[nChildIndex]);
     }
     else
     {
         FXMakerAsset.SetPingObject(m_ReferenceObjects[nChildIndex - FXMakerBackground.m_CloneTypeCount]);
     }
 }
コード例 #14
0
    void DeleteCurveInfo(int nIndex)
    {
        GameObject saveObj = (GameObject)PrefabUtility.InstantiatePrefab(m_CurveAniObjects[m_nProjectIndex]);

        if (m_bOnlyCurve)
        {
            NcCurveAnimation saveCom = saveObj.GetComponent <NcCurveAnimation>();
            if (saveCom != null)
            {
                saveCom.DeleteCurveInfo(m_CurveInfos[nIndex].m_nTag);
            }
        }
        else
        {
            NcCurveAnimation[]           curveAnis    = saveObj.GetComponents <NcCurveAnimation>();
            NcCurveAnimation.NcInfoCurve delCurveInfo = m_CurveInfos[nIndex];

            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];
                    if (curveInfo.m_ApplyType == delCurveInfo.m_ApplyType && curveInfo.m_nTag == delCurveInfo.m_nTag)
                    {
                        curveInfoList.Remove(curveInfo);
                        break;
                    }
                }
            }
        }

        PrefabUtility.ReplacePrefab(saveObj, m_CurveAniObjects[m_nProjectIndex]);
        FXMakerAsset.AssetDatabaseSaveAssets();
        DestroyImmediate(saveObj);

        // update scrolllist
        int nObjectIndex = m_nObjectIndex;

        if (nIndex < m_nObjectIndex)
        {
            nObjectIndex = m_nObjectIndex - 1;
        }
        if (nIndex == m_nObjectIndex)
        {
            nObjectIndex = -1;
        }
        LoadObjects();
        m_nObjectIndex = nObjectIndex;
    }
コード例 #15
0
 void RenameCurrentPrefab(string newName)
 {
     if (newName != m_BackgroundContents[m_nBackgroundIndex].text)
     {
         newName = newName.Trim();
         if (newName != "")
         {
             SaveProject();
             m_BackgroundContents[m_nBackgroundIndex].text = newName;
             m_BackgroundPrefabs[m_nBackgroundIndex].name  = newName;
             m_CurrentBackgroundInfo.gameObject.name       = newName;
             FXMakerAsset.RenameEffectPrefab(m_CurrentBackgroundInfo.gameObject, m_BackgroundPrefabs[m_nBackgroundIndex], newName);
         }
     }
 }
コード例 #16
0
    // ----------------------------------------------------------------------------------------------------------
    protected override void SetActiveObject(int nObjectIndex)
    {
        if (nObjectIndex < 0 || m_nObjectCount <= nObjectIndex)
        {
            return;
        }

        Texture selTexture = GetObjectNodeTexture(nObjectIndex);
        bool    bMaskTex   = false;

        // right button, image Ping and not select
        if (Input.GetMouseButtonUp(1))
        {
            if (m_SelectedMaterial != null && NgMaterial.IsMaskTexture(m_SelectedMaterial))
            {
                m_nSelMaskTextureIndex = nObjectIndex;
                bMaskTex = true;
            }
            else
            {
                FXMakerAsset.SetPingObject(selTexture);
                return;
            }
        }
        else
        {
            m_nSelMainTextureIndex = nObjectIndex;
        }

//      // ������ ��Ŭ��
//      if (m_nObjectIndex == nObjectIndex)
//      {
//          FXMakerAsset.SetPingObject(m_SelectedMaterial);
//          FXMakerMain.inst.CreateCurrentInstanceEffect(true);
//          return;
//      }

        SetActiveObject(selTexture, bMaskTex);

        // GUI Update
        m_nObjectIndex           = nObjectIndex;
        m_nSelObjectProjectIndex = m_nProjectIndex;
        m_nSelObjectGroupIndex   = (m_bOptionRecursively ? -1 : m_nGroupIndex);
        m_SelObjectContent       = new GUIContent(m_ObjectContents[nObjectIndex].text, m_ObjectContents[nObjectIndex].image, m_ObjectContents[nObjectIndex].tooltip);
    }
コード例 #17
0
 public void RenameCurrentPrefab(string newName)
 {
     if (FXMakerMain.inst.IsCurrentEffectObject() && 0 <= m_nEffectIndex && m_nEffectIndex < m_nEffectCount)
     {
         if (newName != m_EffectContents[m_nEffectIndex].text)
         {
             newName = newName.Trim();
             if (newName != "")
             {
                 SaveProject();
                 m_EffectContents[m_nEffectIndex].text = newName;
                 m_EffectPrefabs[m_nEffectIndex].name  = newName;
                 FXMakerMain.inst.GetOriginalEffectObject().name = newName;
                 FXMakerAsset.RenameEffectPrefab(FXMakerMain.inst.GetOriginalEffectObject(), FXMakerMain.inst.GetOriginalEffectPrefab(), newName);
             }
         }
     }
 }
コード例 #18
0
	void SaveCurrentObjectToPrefabFile()
	{
		if (m_nProjectIndex < 0)
			return;

		if (FXMakerEffect.inst.m_DefaultEmptyPrefab == null)
		{
			Debug.LogError("FXMakerMain.m_DefaultEmptyPrefab is null");
			return;
		}

		string dstPath = NgFile.CombinePath(m_LoadDirectory, m_SaveFilename + ".prefab");

		dstPath = NgAsset.CreateDefaultUniquePrefab(FXMakerEffect.inst.m_DefaultEmptyPrefab, dstPath);

		GameObject			newPrefab	= NgAsset.LoadPrefab(dstPath);
		PrefabUtility.ReplacePrefab(m_SelectedTransform.gameObject, newPrefab);
		FXMakerAsset.AssetDatabaseSaveAssets();
	}
コード例 #19
0
    void SetCurrentBackgroundInfo(GameObject setPrefab)
    {
        // clear current
        NgObject.RemoveAllChildObject(m_CurrentBackgroundRoot, true);
        if (m_CurrentBackgroundInfo != null)
        {
            DestroyImmediate(m_CurrentBackgroundInfo.gameObject);
        }

        if (setPrefab != null)
        {
            GameObject obj = NgAsset.LoadPrefab(setPrefab, m_CurrentBackgroundRoot);
            obj.name = obj.name.Replace("(Clone)", "(Original)");
            m_CurrentBackgroundInfo = obj.GetComponent <FxmInfoBackground>();
            m_CurrentBackgroundInfo.SetActive();
            if (FXMakerMain.inst.IsLoadingProject() == false)
            {
                FXMakerAsset.SetPingObject(setPrefab, m_CurrentBackgroundInfo);
            }

            FXMakerMain.inst.GetFXMakerMouse().UpdateCamera();
        }
    }
コード例 #20
0
    void SaveCurveAniToPrefabFile()
    {
        if (m_nProjectIndex < 0)
        {
            return;
        }

        if (m_DefaultSavePrefab == null)
        {
            Debug.LogError("FxmFolderPopup_NcCurveAnimation.m_DefaultSavePrefab is null");
            return;
        }

        string dstPath = NgFile.CombinePath(m_LoadDirectory, m_NcCurveAni_FileKeyword + m_SaveFilename + ".prefab");

        dstPath = NgAsset.CreateDefaultUniquePrefab(m_DefaultSavePrefab, dstPath);

        GameObject       newPrefab = NgAsset.LoadPrefab(dstPath);
        NcCurveAnimation newCom    = newPrefab.AddComponent <NcCurveAnimation>();

        m_CurrentCurveAnimation.CopyTo(newCom, false);
        FXMakerAsset.AssetDatabaseSaveAssets();
    }
コード例 #21
0
    // ----------------------------------------------------------------------------------------------------------
    protected override void SetActiveObject(int nObjectIndex)
    {
        if (nObjectIndex < 0 || m_nObjectCount <= nObjectIndex)
        {
            return;
        }

        bool       bAppend   = false;
        GameObject selPrefab = GetObjectNodePrefab(nObjectIndex);

        // right button, image Ping and not select
        if (Input.GetMouseButtonUp(1))
        {
            if (m_bDialogType == DIALOG_TYPE.ADD && FXMakerOption.inst.m_PrefabDlg_RightClick == FXMakerOption.DLG_RIGHTCLICK.APPEND)
            {
                bAppend = true;
            }
            else
            {
//	            if (m_bDialogType == DIALOG_TYPE.SELECT == false)
                FXMakerAsset.SetPingObject(selPrefab);
                return;
            }
        }

        // 같은것 재클릭
        if (m_nObjectIndex == nObjectIndex)
        {
//			if (m_bDialogType != DIALOG_TYPE.SELECT)
            FXMakerAsset.SetPingObject(m_AddGameObject);
            FXMakerMain.inst.CreateCurrentInstanceEffect(true);
            return;
        }

        if (m_bDialogType == DIALOG_TYPE.SELECT)
        {
            m_AddPrefabObject = selPrefab;
            m_AddGameObject   = selPrefab;

            if (m_bSelectMeshDialog)
            {
                MeshFilter meshFilter = m_AddPrefabObject.GetComponent <MeshFilter>();
                if (meshFilter != null && meshFilter.sharedMesh != null)
                {
                    NgSerialized.SetMesh(m_SelectMeshComponent, meshFilter.sharedMesh, true);
                    FXMakerHierarchy.inst.UpdateMeshList();
                }
            }
            else
            {
                SetAttachPrefab(selPrefab);
            }
            FXMakerMain.inst.CreateCurrentInstanceEffect(true);
        }
        else
        {
            if (bAppend == false)
            {
                // 기존것 삭제
                if (m_AddGameObject != null)
                {
                    m_AddGameObjectList.Remove(m_AddGameObject);
                    DestroyImmediate(m_AddGameObject);
                    m_AddGameObject = null;
                }
            }

            // create
            m_AddPrefabObject = selPrefab;
            m_AddGameObject   = FXMakerHierarchy.inst.AddGameObject(m_SelectedTransform.gameObject, selPrefab);
            m_AddGameObjectList.Insert(0, m_AddGameObject);

            if (FXMakerHierarchy.inst.SetActiveGameObject(m_AddGameObject) == false)
            {
                FXMakerMain.inst.CreateCurrentInstanceEffect(true);
            }
        }

        m_nObjectIndex           = nObjectIndex;
        m_nSelObjectProjectIndex = m_nProjectIndex;
        m_nSelObjectGroupIndex   = (m_bOptionRecursively ? -1 : m_nGroupIndex);
        m_SelObjectContent       = new GUIContent(m_ObjectContents[nObjectIndex].text, m_ObjectContents[nObjectIndex].image, m_ObjectContents[nObjectIndex].tooltip);
    }
コード例 #22
0
    void DrawBottomMaterialRect(Rect baseRect)
    {
        int      nVMargin    = 4;
        GUIStyle styleBox    = GUI.skin.GetStyle("MaterialList_Box");
        GUIStyle styleButton = GUI.skin.GetStyle("ImageOnly_Button");

        // Draw line
        NgGUIDraw.DrawHorizontalLine(new Vector2(baseRect.x + nVMargin, baseRect.y + nVMargin), (int)baseRect.width, new Color(0.1f, 0.1f, 0.1f, 0.7f), 2, false);

        baseRect = FXMakerLayout.GetOffsetRect(baseRect, 0, nVMargin * 2, 0, -nVMargin);
        int  nObjectCount;
        Rect listRect;
        int  nColumn;
        Rect scrollRect;
        Rect gridRect;
        int  nSelectIndex;
        bool bShowList = true;                          // (0 <= m_nObjectIndex && m_nSelObjectProjectIndex == m_nProjectIndex && m_nGroupIndex == m_nSelObjectGroupIndex);

        // New Shader Material List ------------------------------------------------------
        listRect = FXMakerLayout.GetInnerHorizontalRect(baseRect, 2, 0, 1);
        GUI.Box(listRect, GetHelpContent("New Shader Material"), styleBox);

        if (bShowList && m_NewShaderMaterials != null && 0 < m_NewShaderMaterials.Length)
        {
            listRect     = FXMakerLayout.GetOffsetRect(listRect, 5, 15, -5, -3);
            nColumn      = (int)((listRect.width - 5) / listRect.height * 2.3f);
            nObjectCount = m_NewShaderMaterials.Length;
            scrollRect   = FXMakerLayout.GetAspectScrollViewRect((int)listRect.width, m_fButtonAspect, nObjectCount, nColumn, true);
            gridRect     = FXMakerLayout.GetAspectScrollGridRect((int)listRect.width, m_fButtonAspect, nObjectCount, nColumn, true);

            m_NewShaderMaterialListScrollPos = GUI.BeginScrollView(listRect, m_NewShaderMaterialListScrollPos, scrollRect);
//			nSelectIndex	= GUI.SelectionGrid(gridRect, m_nNewShaderMaterialIndex, m_NewShaderMaterialContents, nColumn, styleButton);
            nSelectIndex = FXMakerLayout.TooltipSelectionGrid(FXMakerLayout.GetOffsetRect(GetPopupRect(), 0, -m_NewShaderMaterialListScrollPos.y), listRect, gridRect, m_nNewShaderMaterialIndex, m_NewShaderMaterialContents, nColumn, styleButton);

            if (m_nNewShaderMaterialIndex != nSelectIndex)
            {
                if (Input.GetMouseButtonUp(1))
                {
                    FXMakerAsset.SetPingObject(m_NewShaderMaterials[nSelectIndex]);
                }
                else
                {
                    m_nNewShaderMaterialIndex = nSelectIndex;
                    if (m_SelectedMaterial != null)
                    {
                        NgMaterial.CopyMaterialArgument(m_SelectedMaterial, m_NewShaderMaterials[nSelectIndex]);
                    }
                    SetActiveMaterial(m_NewShaderMaterials[nSelectIndex], null, true, false);
                }
            }
            GUI.EndScrollView();
        }

        // Found Material List ------------------------------------------------------
        listRect = FXMakerLayout.GetInnerHorizontalRect(baseRect, 2, 1, 1);
        GUI.Box(listRect, GetHelpContent("Found Material"), styleBox);

        if (bShowList && m_CurrentTextureMaterials != null && 0 < m_CurrentTextureMaterials.Length)
        {
            listRect     = FXMakerLayout.GetOffsetRect(listRect, 5, 15, -5, -3);
            nColumn      = (int)((listRect.width - 5) / listRect.height * 2.3f);
            nObjectCount = m_CurrentTextureMaterials.Length;
            scrollRect   = FXMakerLayout.GetAspectScrollViewRect((int)listRect.width, m_fButtonAspect, nObjectCount, nColumn, true);
            gridRect     = FXMakerLayout.GetAspectScrollGridRect((int)listRect.width, m_fButtonAspect, nObjectCount, nColumn, true);

            m_CurrentTextureMaterialListScrollPos = GUI.BeginScrollView(listRect, m_CurrentTextureMaterialListScrollPos, scrollRect);
//			nSelectIndex	= GUI.SelectionGrid(gridRect, m_nCurrentTextureMaterialIndex, m_CurrentTextureMaterialContents, nColumn, styleButton);
            nSelectIndex = FXMakerLayout.TooltipSelectionGrid(FXMakerLayout.GetOffsetRect(GetPopupRect(), 0, -m_CurrentTextureMaterialListScrollPos.y), listRect, gridRect, m_nCurrentTextureMaterialIndex, m_CurrentTextureMaterialContents, nColumn, styleButton);

            if (m_nCurrentTextureMaterialIndex != nSelectIndex)
            {
                if (Input.GetMouseButtonUp(1))
                {
                    FXMakerAsset.SetPingObject(m_NewShaderMaterials[nSelectIndex]);
                }
                else
                {
                    m_nCurrentTextureMaterialIndex = nSelectIndex;
                    SetActiveMaterial(m_CurrentTextureMaterials[nSelectIndex], null, false, false);
                }
            }
            GUI.EndScrollView();
        }
    }
コード例 #23
0
    void SaveMaterial(Material addMat)
    {
        string path    = "";
        string newPath = "";
        string uniquePath;
        Object existsObj;
        int    nUniqueCount = 0;

        // Find Same Material
        if (m_bUniqueSave == false && m_SelectedTextureMaterials != null)
        {
            foreach (Material mat in m_SelectedTextureMaterials)
            {
                if (NgMaterial.IsSameMaterial(mat, addMat, false))
                {
                    NgUtil.LogMessage(FXMakerTooltip.GetHsToolMessage("MATERIAL_EXISTSAVED", ""));
                    SetSelectedTransformMaterial(mat);
                    return;
                }
            }
        }

        // Create Path
        bool   bUseDefaultFolder = false;
        string devMatDir         = "_MaterialsTool";
        string userMatDir        = "_MaterialsUser";
        string matDir;

        if (FXMakerLayout.m_bDevelopState)
        {
            matDir = devMatDir;
        }
        else
        {
            matDir = userMatDir;
        }

        if ((addMat.mainTexture != null))
        {
            path = AssetDatabase.GetAssetPath(addMat.mainTexture);
            if (path == "")
            {
                bUseDefaultFolder = true;
            }
            else
            {
                newPath = NgFile.CombinePath(NgFile.TrimFilenameExt(path), matDir);
                // Default SubDirectory
                if (NgAsset.ExistsDirectory(newPath) == false)
                {
                    AssetDatabase.CreateFolder(NgFile.TrimFilenameExt(path), matDir);
                }
            }
        }
        else
        {
            newPath = NgFile.TrimFilenameExt(AssetDatabase.GetAssetPath(m_OriMaterial));
            if (newPath == "")
            {
                bUseDefaultFolder = true;
            }
            else
            {
                string tmpPath = NgFile.TrimLastFolder(newPath);
                string tmpLast = NgFile.GetLastFolder(newPath);

                if (FXMakerLayout.m_bDevelopState)
                {
                    if (tmpLast != devMatDir)
                    {
                        newPath = NgFile.CombinePath(tmpPath, devMatDir);
                        if (NgAsset.ExistsDirectory(newPath) == false)
                        {
                            AssetDatabase.CreateFolder(tmpPath, matDir);
                        }
                    }
                }
                else
                {
                    if (tmpLast != userMatDir)
                    {
                        newPath = NgFile.CombinePath(tmpPath, userMatDir);
                        if (NgAsset.ExistsDirectory(newPath) == false)
                        {
                            AssetDatabase.CreateFolder(tmpPath, matDir);
                        }
                    }
                }
            }
        }

        if (bUseDefaultFolder)
        {
            path    = FXMakerMain.inst.GetResourceDir(FXMakerMain.TOOLDIR_TYPE.BACKGROUNDRESOURCES);
            newPath = NgFile.CombinePath(path, matDir);
            // Default SubDirectory
            if (NgAsset.ExistsDirectory(newPath) == false)
            {
                AssetDatabase.CreateFolder(path, matDir);
            }
        }

        // Unique Name
        string texname = addMat.name;

        if (addMat.mainTexture != null)
        {
            texname = addMat.mainTexture.name;
        }
        int nLoopCount = 0;

        while (true)
        {
            string matName = texname + (0 < nUniqueCount ? "_" + nUniqueCount.ToString() : "") + ".mat";
            uniquePath = NgFile.CombinePath(newPath, matName);
            existsObj  = AssetDatabase.LoadAssetAtPath(uniquePath, typeof(Material));
            if (existsObj == null)
            {
                break;
            }
            nLoopCount++;
            nUniqueCount++;
            if (999 < nUniqueCount)
            {
                nUniqueCount = 1;
            }
            if (999 < nLoopCount)
            {
                Debug.LogError("Over Loop ----------------------");
                return;
            }
        }

        AssetDatabase.CreateAsset(addMat, uniquePath);
        NgUtil.LogMessage(FXMakerTooltip.GetHsToolMessage("MATERIAL_NEWSAVED", "") + "\n" + uniquePath);
        FXMakerAsset.AssetDatabaseRefresh();
        FXMakerAsset.AssetDatabaseSaveAssets();
    }
コード例 #24
0
    void DrawBottomMenuRect(Rect baseRect)
    {
        GUI.Box(baseRect, "");

        Rect imageRect = baseRect;

        imageRect.width = m_nOriginalBottomHeight - 1;
        Rect rightRect = baseRect;

        rightRect.x     += imageRect.width;
        rightRect.width -= imageRect.width;
        rightRect        = FXMakerLayout.GetOffsetRect(rightRect, 5, 3, -5, -3);

        Rect buttonRect   = FXMakerLayout.GetInnerVerticalRect(rightRect, 12, 0, 5);
        int  nButtonWidht = 70;

        buttonRect.width = nButtonWidht / 2;

        if (m_SelectedMaterial != null && m_SelObjectContent != null)
        {
            // image
            if (GUI.Button(imageRect, new GUIContent("", m_SelObjectContent.image, m_SelObjectContent.tooltip), GUI.skin.GetStyle("PopupBottom_ImageButton")))
            {
                if (Input.GetMouseButtonUp(0))
                {
                    if (0 <= m_nNewShaderMaterialIndex)
                    {
                        FXMakerAsset.SetPingObject(m_SelectedTransform.gameObject);
                    }
                    else
                    {
                        FXMakerAsset.SetPingObject(m_SelectedMaterial);
                    }
                    FXMakerMain.inst.CreateCurrentInstanceEffect(true);
                }
                if (Input.GetMouseButtonUp(1))
                {
                    FXMakerAsset.SetPingObject(m_SelObjectContent.image);
                }
            }

            // Current Color
            Color matColor  = NgMaterial.GetMaterialColor(m_SelectedMaterial);
            Rect  colorRect = FXMakerLayout.GetOffsetRect(FXMakerLayout.GetInnerVerticalRect(rightRect, 12, 5, 7), 0, 2, 0, 0);
            colorRect.width = nButtonWidht / 2;
            if (NgMaterial.IsMaterialColor(m_SelectedMaterial))
            {
                EditorGUIUtility.DrawColorSwatch(colorRect, matColor);
            }

            // text
            rightRect.x     += colorRect.width;
            rightRect.width -= colorRect.width;
            GUI.Label(FXMakerLayout.GetInnerVerticalRect(rightRect, 12, 5, 3), m_SelObjectContent.text);
            GUI.Label(FXMakerLayout.GetInnerVerticalRect(rightRect, 12, 7, 5), (m_SelectedMaterial.shader != null ? m_SelectedMaterial.shader.name : "[Not Selected]"));


            bool bChange = (NgMaterial.IsSameMaterial(m_SelectedMaterial, m_OriMaterial, true) == false);
            // Undo
            if (FXMakerLayout.GUIButton(buttonRect, GetHelpContent("Undo"), bChange))
            {
                UndoObject();
                return;
            }

            // UniqueSave
            buttonRect.x    += buttonRect.width + 5;
            buttonRect.width = nButtonWidht;
            if (FXMakerLayout.GUIButton(buttonRect, GetHelpContent("UniqueSave"), bChange))
            {
                m_bUniqueSave = true;
                ClosePopup(true);
                return;
            }
        }

        // close
        buttonRect.x    += buttonRect.width + 5;
        buttonRect.width = baseRect.width - buttonRect.x;
        if (GUI.Button(buttonRect, GetHelpContent("Close")))
        {
            ClosePopup(true);
        }

        // ���õȰ�, ������, ��ġ, ȸ��, ����, �ݱ�, ���
    }
コード例 #25
0
ファイル: FXMakerEffect.cs プロジェクト: PenpenLi/Dczg
    // ==========================================================================================================
    void winEffectList(int id)
    {
        if (GetGroupIndex() < 0)
        {
            return;
        }

        Rect effectRect = FXMakerLayout.GetEffectListRect();

        // window desc -----------------------------------------------------------
        FXMakerTooltip.WindowDescription(effectRect, FXMakerLayout.WINDOWID.EFFECT_LIST, null);

        // mini ----------------------------------------------------------------
        m_bMinimize = GUI.Toggle(new Rect(3, 1, FXMakerLayout.m_fMinimizeClickWidth, FXMakerLayout.m_fMinimizeClickHeight), m_bMinimize, "Mini");
        GUI.changed = false;
        if (FXMakerLayout.m_bMinimizeAll || m_bMinimize)
        {
            RenameCurrentPrefab(m_EditingName);
            FXMakerMain.inst.SaveTooltip();
            return;
        }

        // 扁瓷 滚瓢 -----------------------------------------------------------
        Rect rect1Row = new Rect(FXMakerLayout.m_rectInnerMargin.x, 20, effectRect.width - FXMakerLayout.m_rectInnerMargin.x * 2, 25);
        Rect rect2Row = new Rect(FXMakerLayout.m_rectInnerMargin.x, 50, effectRect.width - FXMakerLayout.m_rectInnerMargin.x * 2, 20);
        Rect rect3Row = new Rect(FXMakerLayout.m_rectInnerMargin.x, 75, effectRect.width - FXMakerLayout.m_rectInnerMargin.x * 2, 12);

        // Add button
        if (m_nEffectCount < FXMakerLayout.m_nMaxPrefabListCount)
        {
            if (FXMakerLayout.GUIButton(FXMakerLayout.GetInnerHorizontalRect(rect1Row, 5, 0, 1), FXMakerTooltip.GetHcToolEffect("New"), IsReadOnlyFolder() == 0))
            {
                RenameCurrentPrefab(m_EditingName);
                ShowNewMenu();
                return;
            }
        }

        if (m_nEffectCount <= 0)
        {
            // right button
            if (Input.GetMouseButtonUp(1))
            {
                ShowRightMenu(-1, false);
            }
            return;
        }

        // Selected state
        bool bEnable = (FXMakerMain.inst.IsCurrentEffectObject() && IsReadOnlyFolder() == 0);

        // Delete button
        if (FXMakerLayout.GUIButton(FXMakerLayout.GetInnerHorizontalRect(rect1Row, 5, 1, 1), FXMakerTooltip.GetHcToolEffect("Del"), bEnable))
        {
            RenameCurrentPrefab(m_EditingName);
            m_bProcessDelete = true;
        }

        if (m_bProcessDelete)
        {
            m_bProcessDelete = FxmPopupManager.inst.ShowModalOkCancelMessage("'" + m_EffectContents[m_nEffectIndex].text + "'\n" + FXMakerTooltip.GetHsToolMessage("DIALOG_DELETEPREFAB", ""));
            if (m_bProcessDelete == false)
            {
                if (FxmPopupManager.inst.GetModalMessageValue() == FXMakerLayout.MODALRETURN_TYPE.MODALRETURN_OK)
                {
                    NcSpriteAnimation spriteCom = FXMakerMain.inst.GetOriginalEffectPrefab().GetComponent <NcSpriteAnimation>();
                    if (spriteCom != null && spriteCom.m_bBuildSpriteObj && spriteCom.GetComponent <Renderer>().sharedMaterial != null)
                    {
                        m_bProcessDelSprite = true;
                    }
                    else
                    {
                        GameObject deletePrefab = FXMakerMain.inst.ClearCurrentEffectObject(m_CurrentEffectRoot, true);
                        FXMakerAsset.DeleteEffectPrefab(deletePrefab);
                        SelectToolbar(m_nProjectIndex, GetGroupIndex(), m_nEffectIndex);
                        return;
                    }
                }
            }
        }

        if (m_bProcessDelSprite)
        {
            m_bProcessDelSprite = FxmPopupManager.inst.ShowModalOkCancelMessage("'" + m_EffectContents[m_nEffectIndex].text + "'\n" + FXMakerTooltip.GetHsToolMessage("DIALOG_DELETESPRITE", ""));
            if (m_bProcessDelSprite == false)
            {
                if (FxmPopupManager.inst.GetModalMessageValue() == FXMakerLayout.MODALRETURN_TYPE.MODALRETURN_OK)
                {
                    // delete material, texture
                    NcSpriteAnimation spriteCom = FXMakerMain.inst.GetOriginalEffectPrefab().GetComponent <NcSpriteAnimation>();
                    if (spriteCom.GetComponent <Renderer>().sharedMaterial.mainTexture != null)
                    {
                        string path = AssetDatabase.GetAssetPath(spriteCom.GetComponent <Renderer>().sharedMaterial.mainTexture);
                        AssetDatabase.MoveAssetToTrash(path);
//						AssetDatabase.DeleteAsset(path);
                    }
                    string matpath = AssetDatabase.GetAssetPath(spriteCom.GetComponent <Renderer>().sharedMaterial);
                    AssetDatabase.MoveAssetToTrash(matpath);
//					AssetDatabase.DeleteAsset(matpath);
                }
                // delete prefab
                GameObject deletePrefab = FXMakerMain.inst.ClearCurrentEffectObject(m_CurrentEffectRoot, true);
                FXMakerAsset.DeleteEffectPrefab(deletePrefab);
                SelectToolbar(m_nProjectIndex, GetGroupIndex(), m_nEffectIndex);
                return;
            }
        }

        // Clone button
        if (FXMakerLayout.GUIButton(FXMakerLayout.GetInnerHorizontalRect(rect1Row, 5, 2, 1), FXMakerTooltip.GetHcToolEffect("Clone"), bEnable))
        {
            RenameCurrentPrefab(m_EditingName);
            ClonePrefab();
            return;
        }

        // Capture Thumb button
        if (FXMakerLayout.GUIButton(FXMakerLayout.GetInnerHorizontalRect(rect1Row, 5, 3, 1), FXMakerTooltip.GetHcToolEffect("Thumb"), bEnable))
        {
            RenameCurrentPrefab(m_EditingName);
            ThumbPrefab();
            return;
        }

//      // History button
//      if (FXMakerLayout.GUIButton(FXMakerLayout.GetInnerHorizontalRect(rect1Row, 5, 4, 1), FXMakertip.GetHcToolEffect("History"), bEnable))
//      {
//          SetActiveEffect(m_nEffectIndex);
//          return;
//      }

        // Sprite button
        if (FXMakerLayout.GUIButton(FXMakerLayout.GetInnerHorizontalRect(rect1Row, 5, 4, 1), FXMakerTooltip.GetHcToolEffect("Sprite"), bEnable))
        {
            RenameCurrentPrefab(m_EditingName);
            SpritePrefab();
            return;
        }

        // Selected state
        if (FXMakerMain.inst.IsCurrentEffectObject())
        {
            // ChangeName
            if (FXMakerMain.inst.IsCurrentEffectObject() && 0 <= m_nEffectIndex && m_nEffectIndex < m_nEffectCount)
            {
                GUI.SetNextControlName("TextField");
                FXMakerLayout.GUIEnableBackup(IsReadOnlyFolder() == 0);
//              FXMakerMain.inst.ToggleGlobalLangSkin(true);
                m_EditingName = GUI.TextField(FXMakerLayout.GetInnerHorizontalRect(rect2Row, 4, 0, 4), m_EditingName, 50);
//              FXMakerMain.inst.ToggleGlobalLangSkin(false);
                FXMakerLayout.GUIEnableRestore();

                bool bEnterKey = (Event.current.isKey && (Event.current.keyCode == KeyCode.Return || Event.current.keyCode == KeyCode.KeypadEnter));
                if (bEnterKey || (FXMakerMain.GetPrevWindowFocus() == (int)FXMakerLayout.WINDOWID.EFFECT_LIST && FXMakerMain.GetWindowFocus() != (int)FXMakerLayout.WINDOWID.EFFECT_LIST))
                {
                    RenameCurrentPrefab(m_EditingName);
                }
            }
        }

        // Resize --------------------------------------------------------------
        bool bChangeScrollColumn = false;

        m_nScrollColumn = (int)GUI.HorizontalScrollbar(rect3Row, m_nScrollColumn, 1, 1, m_nMaxObjectColumn + 1);
        if (GUI.changed)
        {
            UnityEditor.EditorPrefs.SetInt("FXMakerEffect.Effect_nScrollColumn", m_nScrollColumn);
            bChangeScrollColumn = true;

            Rect rect = FXMakerLayout.GetAspectScrollViewRect((int)rect3Row.width, FXMakerLayout.m_fScrollButtonAspect, m_nEffectCount, m_nScrollColumn, false);
            m_EffectListScrollPos.y = rect.height * (m_nEffectIndex - m_nScrollColumn) / (float)m_nEffectCount;
        }
        // Draw line
        Rect lineRect = rect3Row;

        lineRect.y      = rect3Row.yMax + 5;
        lineRect.height = 3;
        NgGUIDraw.DrawHorizontalLine(new Vector2(lineRect.x, lineRect.y), (int)lineRect.width, new Color(0.1f, 0.1f, 0.1f, 0.7f), 2, false);

        // Effect List ------------------------------------------------------
        Rect listRect   = FXMakerLayout.GetChildVerticalRect(effectRect, m_nGuiTopHeight, 1, 0, 1);
        Rect scrollRect = FXMakerLayout.GetAspectScrollViewRect((int)listRect.width, FXMakerLayout.m_fScrollButtonAspect, m_nEffectCount, m_nScrollColumn, false);
        Rect gridRect   = FXMakerLayout.GetAspectScrollGridRect((int)listRect.width, FXMakerLayout.m_fScrollButtonAspect, m_nEffectCount, m_nScrollColumn, false);

        m_EffectListScrollPos = GUI.BeginScrollView(listRect, m_EffectListScrollPos, scrollRect);
//      FXMakerMain.inst.ToggleGlobalLangSkin(true);
//		int		nEffectIndex	= GUI.SelectionGrid(listRect, m_nEffectIndex, m_EffectNameStrings, m_nScrollColumn);
//		int		nEffectIndex	= GUI.SelectionGrid(gridRect, m_nEffectIndex, m_EffectContents, m_nScrollColumn);
        int nEffectIndex = FXMakerLayout.TooltipSelectionGrid(FXMakerLayout.GetOffsetRect(effectRect, 0, -m_EffectListScrollPos.y), listRect, gridRect, m_nEffectIndex, m_EffectContents, m_nScrollColumn);

//      FXMakerMain.inst.ToggleGlobalLangSkin(false);

        // move key
        if (FXMakerMain.inst.GetFocusInputKey(FXMakerLayout.GetWindowId(FXMakerLayout.WINDOWID.EFFECT_LIST)) != 0)
        {
            switch (FXMakerMain.inst.GetFocusInputKey(FXMakerLayout.GetWindowId(FXMakerLayout.WINDOWID.EFFECT_LIST)))
            {
            case KeyCode.LeftArrow: nEffectIndex--;                                       FXMakerMain.inst.SetFocusInputKey(0);   break;

            case KeyCode.RightArrow: nEffectIndex++;                                       FXMakerMain.inst.SetFocusInputKey(0);   break;

            case KeyCode.UpArrow: nEffectIndex -= m_nScrollColumn;        FXMakerMain.inst.SetFocusInputKey(0);   break;

            case KeyCode.DownArrow: nEffectIndex += m_nScrollColumn;        FXMakerMain.inst.SetFocusInputKey(0);   break;
            }
            if (nEffectIndex < 0)
            {
                nEffectIndex = 0;
            }
            if (m_nEffectCount <= nEffectIndex)
            {
                nEffectIndex = m_nEffectCount - 1;
            }
        }

        // select
        if ((bChangeScrollColumn == false && GUI.changed) || m_nEffectIndex != nEffectIndex)
        {
            RenameCurrentPrefab(m_EditingName);

            // right button
            if (Input.GetMouseButtonUp(1))
            {
                ShowRightMenu(nEffectIndex, true);
            }

            // active
            NgUtil.LogDevelop("changed m_nEffectIndex - id = " + id + ", value = " + m_EffectContents[nEffectIndex].text);
            if (nEffectIndex == m_nEffectIndex && FXMakerMain.inst.IsCurrentEffectObject())
            {
                FXMakerMain.inst.CreateCurrentInstanceEffect(true);
            }
            else
            {
                SetActiveEffect(nEffectIndex);
            }
        }
        else
        {
            // right button
            if (Input.GetMouseButtonUp(1))
            {
                RenameCurrentPrefab(m_EditingName);
                ShowRightMenu(-1, false);
            }
        }
        GUI.EndScrollView();
        FXMakerMain.inst.SaveTooltip();
    }
コード例 #26
0
ファイル: FXMakerEffect.cs プロジェクト: PenpenLi/Dczg
    void PingPrefab()
    {
//		if (IsLoadingProject() == false)
//			if (Input.GetMouseButtonUp(1))
        FXMakerAsset.SetPingObject(FXMakerMain.inst.GetOriginalEffectPrefab());
    }
コード例 #27
0
    // ==========================================================================================================
    protected override void DrawBottomRect(Rect baseRect)
    {
        GUI.Box(baseRect, "");

        GUIContent guiCon;
        Rect       imageRect = baseRect;

        imageRect.width = FXMakerLayout.GetFixedWindowWidth();
        Rect rightRect = baseRect;

        rightRect.x     += imageRect.width;
        rightRect.width -= imageRect.width;
        rightRect        = FXMakerLayout.GetOffsetRect(rightRect, 5, 3, -5, -3);

        Rect buttonRect = FXMakerLayout.GetInnerVerticalRect(rightRect, 12, 0, 5);

        if (m_bSaveDialog)
        {
            Rect labelRect = FXMakerLayout.GetInnerVerticalRect(baseRect, 12, 2, 3);
            GUI.Label(FXMakerLayout.GetLeftRect(labelRect, 100), "Filename:");
            Rect   editRect     = FXMakerLayout.GetInnerVerticalRect(baseRect, 12, 5, 5);
            string saveFilename = GUI.TextField(editRect, m_SaveFilename, 50);
            if (saveFilename != m_SaveFilename)
            {
                if (saveFilename.Trim() != "")
                {
                    m_SaveFilename = saveFilename;
                }
            }
        }
        else
        {
            bool bPreviewEnable = false;
            // image
            if (m_SelObjectContent == null)
            {
                guiCon = new GUIContent("[Not Selected]");
                // original mesh preview
                if (m_bDialogType == DIALOG_TYPE.SELECT && m_bSelectMeshDialog && m_OldSelectMesh != null)
                {
                    Texture2D preview = NgAsset.GetAssetPreview(m_OldSelectMesh);
                    guiCon         = new GUIContent(m_OldSelectMesh.name, preview, GetMeshInfo(m_OldSelectMesh));
                    bPreviewEnable = true;
                }
            }
            else
            {
                guiCon         = new GUIContent("", m_SelObjectContent.image, m_SelObjectContent.tooltip);
                bPreviewEnable = (m_SelObjectContent != null);
            }

            if (FXMakerLayout.GUIButton(imageRect, guiCon, GUI.skin.GetStyle("PopupBottom_ImageButton"), bPreviewEnable))
            {
                if (m_bDialogType == DIALOG_TYPE.SELECT)
                {
                    if (m_bSelectMeshDialog)
                    {
                        Object pingObj;
                        Object pingMesh;
                        if (m_AddPrefabObject != null)
                        {
                            pingObj  = m_AddPrefabObject;
                            pingMesh = m_AddPrefabObject.GetComponent <MeshFilter>().sharedMesh;
                        }
                        else
                        {
                            pingObj  = m_OldSelectMesh;
                            pingMesh = m_OldSelectMesh;
                        }

                        if (Input.GetMouseButtonUp(0))
                        {
                            FXMakerAsset.SetPingObject(pingObj);
                            FXMakerMain.inst.CreateCurrentInstanceEffect(true);
                        }
                        if (Input.GetMouseButtonUp(1))
                        {
                            FXMakerAsset.SetPingObject(pingMesh);
                        }
                    }
                    else
                    {
                        FXMakerMain.inst.CreateCurrentInstanceEffect(true);
                    }
                }
                else
                {
                    if (Input.GetMouseButtonUp(0))
                    {
                        FXMakerAsset.SetPingObject(m_AddGameObject);
                        FXMakerMain.inst.CreateCurrentInstanceEffect(true);
                    }
                    if (Input.GetMouseButtonUp(1))
                    {
                        FXMakerAsset.SetPingObject(GetObjectNodePrefab(m_nObjectIndex));
                    }
                }
            }

            // text
            GUI.Label(FXMakerLayout.GetInnerVerticalRect(rightRect, 12, 5, 8), (m_SelObjectContent == null ? "[Not Selected]" : m_SelObjectContent.text));
        }

        if (m_bSaveDialog)
        {
            bool bSaveEnable    = (0 <= m_nGroupIndex && 0 < m_nGroupCount);
            bool bReadOnyFolder = false;

            if (bSaveEnable)
            {
                bReadOnyFolder = 0 < IsReadOnlyFolder();
                bSaveEnable    = !bReadOnyFolder;
            }

            // Cancel
            if (FXMakerLayout.GUIButton(FXMakerLayout.GetInnerHorizontalRect(buttonRect, 2, 0, 1), GetHelpContent("Cancel"), true))
            {
                ClosePopup(false);
                return;
            }
            // save
            if (FXMakerLayout.GUIButton(FXMakerLayout.GetInnerHorizontalRect(buttonRect, 2, 1, 1), (bReadOnyFolder ? FXMakerTooltip.GetGUIContent("Save", FXMakerTooltip.GetHsToolMessage("READONLY_FOLDER", "")) : GetHelpContent("Save")), bSaveEnable))
            {
                SaveCurrentObjectToPrefabFile();
                ClosePopup(true);
//              FXMakerEffect.inst.LoadProject();
            }
            if (m_bDrawRedBottomButtom)
            {
                NgGUIDraw.DrawBox(FXMakerLayout.GetOffsetRect(buttonRect, 3), FXMakerLayout.m_ColorHelpBox, (bSaveEnable ? 2:1), false);
            }
            if (m_bDrawRedBottom)
            {
                NgGUIDraw.DrawBox(FXMakerLayout.GetOffsetRect(baseRect, 2), FXMakerLayout.m_ColorHelpBox, (bSaveEnable ? 2:1), false);
            }
        }
        else
        {
            // Undo
            int nButtonWidht = 70;
            buttonRect.width = nButtonWidht / 2;
            if (FXMakerLayout.GUIButton(buttonRect, GetHelpContent("Undo"), (m_AddGameObject != null)))
            {
                UndoObject();
            }

            // close
            buttonRect.x    += buttonRect.width + 5;
            buttonRect.width = baseRect.width - buttonRect.x;
            if (GUI.Button(buttonRect, GetHelpContent("Close")))
            {
                ClosePopup(true);
            }
        }
    }
コード例 #28
0
 public void SaveBackgroundPrefab()
 {
     NgUtil.LogDevelop("SaveBackgroundPrefab - FxmBack prefab");
     m_BackgroundPrefabs[m_nBackgroundIndex] = FXMakerAsset.SaveEffectPrefab(m_CurrentBackgroundInfo.gameObject, m_BackgroundPrefabs[m_nBackgroundIndex]);
     ShowBackground(true, true);
 }
コード例 #29
0
    void winMenuEdit(int id)
    {
        if (m_nGroupCount <= 0)
        {
            return;
        }

        // Change Group name
        if (0 <= m_nGroupIndex && m_nGroupIndex < m_nGroupCount)
        {
//          string newName = GUI.TextField(gNcLayout.GetChildVerticalRect(gNcLayout.GetMenuTopRightRect(), 0, 2, 0), m_GroupFolerStrings[m_nGroupIndex], 50);
//          newName = newName.Trim();
//          if (newName != "" && m_GroupFolerStrings[m_nGroupIndex] != newName)
//          {
//              FileUtil.ReplaceDirectory(NgFile.CombinePath(m_RootBackgroundDir, m_GroupFolerStrings[m_nGroupIndex]), NgFile.CombinePath(m_RootBackgroundDir, newName));
//              m_GroupFolerStrings[m_nGroupIndex]	= newName;
//              FXMakerMain.inst.AssetDatabaseRefresh();
//          }
        }

        // Add button
        if (m_nBackgroundCount < FXMakerOption.inst.m_nMinBottomToolbarCount)
        {
            if (GUI.Button(FXMakerLayout.GetInnerHorizontalRect(FXMakerLayout.GetChildVerticalRect(FXMakerLayout.GetMenuTopRightRect(), 0, 3, 0, 1), 2, 0, 1), FXMakerTooltip.GetHcToolBackground("New", NgFile.CombinePath(FXMakerMain.inst.GetResourceDir(FXMakerMain.TOOLDIR_TYPE.BACKGROUNDPREFABS), m_GroupFolerContents[m_nGroupIndex].text))))
            {
                RenameCurrentPrefab(m_EditingName);
                NewPrefab();
                return;
            }
        }

        // Selected state
        if (m_CurrentBackgroundInfo != null)
        {
            // Delete button
            if (GUI.Button(FXMakerLayout.GetInnerHorizontalRect(FXMakerLayout.GetChildVerticalRect(FXMakerLayout.GetMenuTopRightRect(), 0, 3, 0, 1), 2, 1, 1), FXMakerTooltip.GetHcToolBackground("Del", m_BackgroundContents[m_nBackgroundIndex].text)))
            {
                RenameCurrentPrefab(m_EditingName);
                m_bProcessDelete = true;
            }

            if (m_bProcessDelete)
            {
                m_bProcessDelete = FxmPopupManager.inst.ShowModalOkCancelMessage("'" + m_BackgroundContents[m_nBackgroundIndex].text + "'\n" + FXMakerTooltip.GetHsToolMessage("DIALOG_DELETEPREFAB", ""));
                if (m_bProcessDelete == false)
                {
                    if (FxmPopupManager.inst.GetModalMessageValue() == FXMakerLayout.MODALRETURN_TYPE.MODALRETURN_OK)
                    {
                        if (m_CurrentBackgroundInfo != null)
                        {
                            DestroyImmediate(m_CurrentBackgroundInfo.gameObject);
                        }
                        FXMakerAsset.DeleteEffectPrefab(m_BackgroundPrefabs[m_nBackgroundIndex]);
                        SelectToolbar(m_nGroupIndex, m_nBackgroundIndex - 1);
                        return;
                    }
                }
            }

            // Clone button
            if (GUI.Button(FXMakerLayout.GetInnerHorizontalRect(FXMakerLayout.GetChildVerticalRect(FXMakerLayout.GetMenuTopRightRect(), 0, 3, 1, 1), 2, 0, 1), FXMakerTooltip.GetHcToolBackground("Clone", m_BackgroundContents[m_nBackgroundIndex].text)))
            {
                RenameCurrentPrefab(m_EditingName);
                ClonePrefab();
                return;
            }

            // Thumb Selected
            if (GUI.Button(FXMakerLayout.GetInnerHorizontalRect(FXMakerLayout.GetChildVerticalRect(FXMakerLayout.GetMenuTopRightRect(), 0, 3, 1, 1), 2, 1, 1), FXMakerTooltip.GetHcToolBackground("Thumb", m_BackgroundContents[m_nBackgroundIndex].text)))
            {
                RenameCurrentPrefab(m_EditingName);
                ThumbPrefab();
                return;
            }

            // ChangeName
            if (m_CurrentBackgroundInfo != null && 0 <= m_nBackgroundIndex && m_nBackgroundIndex < m_nBackgroundCount)
            {
                GUI.SetNextControlName("TextField");
                m_EditingName = GUI.TextField(FXMakerLayout.GetChildVerticalRect(FXMakerLayout.GetMenuTopRightRect(), 0, 3, 2, 1), m_EditingName, 50);

                if (FXMakerMain.GetPrevWindowFocus() == (int)FXMakerLayout.WINDOWID.TOP_RIGHT && FXMakerMain.GetWindowFocus() != (int)FXMakerLayout.WINDOWID.TOP_RIGHT)
                {
                    RenameCurrentPrefab(m_EditingName);
                }
            }
        }
        FXMakerMain.inst.SaveTooltip();
    }
コード例 #30
0
 void PingPrefab()
 {
     FXMakerAsset.SetPingObject(m_BackgroundPrefabs[m_nBackgroundIndex]);
 }