Пример #1
0
        public void Init(RealIvyWindow realIvyProWindow, InfoPool infoPool)
        {
            //instance = (RealIvyProTools)EditorWindow.GetWindow(typeof(RealIvyProTools));

            //this.realIvyProWindow = realIvyProWindow;
            this.infoPool = infoPool;

            modePaint = new ModePaint();
            modePaint.realIvyProWindow = realIvyProWindow;
            modeMove      = new ModeMove();
            modeSmooth    = new ModeSmooth();
            modeRefine    = new ModeRefine();
            modeOptimize  = new ModeOptimize();
            modeCut       = new ModeCut();
            modeDelete    = new ModeDelete();
            modeShave     = new ModeShave();
            modeAddLeaves = new ModeAddLeaves();

            windowSkin       = RealIvyWindow.windowSkin;
            modePaintTex     = (Texture2D)AssetDatabase.LoadAssetAtPath(AssetDatabase.GUIDToAssetPath("7433ea681d2ea9a43a91283aec7779dc"), typeof(Texture2D));
            modeMoveTex      = (Texture2D)AssetDatabase.LoadAssetAtPath(AssetDatabase.GUIDToAssetPath("baa7fb0fea158214195003054cbdc848"), typeof(Texture2D));
            modeSmoothTex    = (Texture2D)AssetDatabase.LoadAssetAtPath(AssetDatabase.GUIDToAssetPath("da81d4c81a2ef904cb9ec2f020f9f0e4"), typeof(Texture2D));
            modeRefineTex    = (Texture2D)AssetDatabase.LoadAssetAtPath(AssetDatabase.GUIDToAssetPath("58c807f93561e014ba108036e7ac3788"), typeof(Texture2D));
            modeOptimizeTex  = (Texture2D)AssetDatabase.LoadAssetAtPath(AssetDatabase.GUIDToAssetPath("d901243b259e1fb40883227b5a342b16"), typeof(Texture2D));
            modeCutTex       = (Texture2D)AssetDatabase.LoadAssetAtPath(AssetDatabase.GUIDToAssetPath("be698aee7a1cd6e4bbac6ef223909851"), typeof(Texture2D));
            modeDeleteTex    = (Texture2D)AssetDatabase.LoadAssetAtPath(AssetDatabase.GUIDToAssetPath("4cd137b68f1323f4484094d30b90f926"), typeof(Texture2D));
            modeShaveTex     = (Texture2D)AssetDatabase.LoadAssetAtPath(AssetDatabase.GUIDToAssetPath("46994a3c472a4d142964853d08614149"), typeof(Texture2D));
            modeAddLeavesTex = (Texture2D)AssetDatabase.LoadAssetAtPath(AssetDatabase.GUIDToAssetPath("4845df643447cae4499501434c4147b4"), typeof(Texture2D));
            downArrowTex     = (Texture2D)AssetDatabase.LoadAssetAtPath(AssetDatabase.GUIDToAssetPath("8ee6aee77df7d3e4485148aa889f9b6b"), typeof(Texture2D));
            upArrowTex       = (Texture2D)AssetDatabase.LoadAssetAtPath(AssetDatabase.GUIDToAssetPath("47e4d534b75170047b81b09581c4f3d9"), typeof(Texture2D));

            FillGUIContent();

            RealIvyProWindowController.OnIvyGoCreated += OnIvyGoCreated;
        }
Пример #2
0
 public void Setup(InfoPool infoPool, MeshFilter meshFilter,
                   MeshRenderer meshRenderer, IvyPreset originalPreset)
 {
     this.infoPool       = infoPool;
     this.meshFilter     = meshFilter;
     this.meshRenderer   = meshRenderer;
     this.originalPreset = originalPreset;
 }
        public void ModifyIvy(IvyInfo ivyInfo)
        {
            this.currentIvyInfo = ivyInfo;
            this.selectedPreset = ivyInfo.originalPreset;

            this.infoPool = ivyInfo.infoPool;
            this.infoPool.ivyContainer.ivyGO = ivyInfo.gameObject;

            this.mf    = ivyInfo.meshFilter;
            this.mr    = ivyInfo.meshRenderer;
            this.ivyGO = ivyInfo.gameObject;

            this.infoPool.growth.growing = false;

            this.infoPool.ivyParameters.branchesMaterial = this.mr.sharedMaterials[0];

            ivyParametersGUI.CopyFrom(infoPool.ivyParameters);

            infoPool.meshBuilder.InitLeavesData();
        }
        public InfoPool CreateNewIvy(IvyParameters ivyParameters)
        {
            infoPool = ScriptableObject.CreateInstance <InfoPool>();
            infoPool.ivyContainer          = ScriptableObject.CreateInstance <IvyContainer>();
            infoPool.ivyContainer.branches = new List <BranchContainer>();

            infoPool.ivyParameters = ivyParameters;
            infoPool.ivyParameters.UV2IslesSizes = new Dictionary <int, Vector2>();

            infoPool.growth          = ScriptableObject.CreateInstance <EditorIvyGrowth>();
            infoPool.growth.infoPool = infoPool;

            infoPool.meshBuilder          = ScriptableObject.CreateInstance <EditorMeshBuilder>();
            infoPool.meshBuilder.infoPool = infoPool;
            infoPool.meshBuilder.ivyMesh  = new Mesh();

            RealIvyWindow.realIvyProToolsWindow.infoPool = infoPool;

            return(infoPool);
        }
Пример #5
0
 public void Init(InfoPool infoPool, MeshFilter mf, RealIvyTools proToolsWindow)
 {
     this.infoPool       = infoPool;
     this.mf             = mf;
     this.proToolsWindow = proToolsWindow;
 }
Пример #6
0
        public LeafPoint AddRandomLeaf(Vector3 pointWS, BranchPoint initSegment, BranchPoint endSegment, int leafIndex, InfoPool infoPool)
        {
            int chosenLeave = UnityEngine.Random.Range(0, infoPool.ivyParameters.leavesPrefabs.Length);

            Vector3 forward = initSegment.initialGrowDir;

            float     lpLength = initSegment.length + Vector3.Distance(pointWS, initSegment.point);
            LeafPoint res      = InsertLeaf(pointWS, lpLength, forward,
                                            -initSegment.grabVector, chosenLeave, leafIndex,
                                            initSegment, endSegment);

            return(res);
        }