コード例 #1
0
        //public Texture TryGetProceduralTexture(ProceduralMaterial procMat, string propName){
        //	Texture returnTex = null;
        //	try{
        //		if(procMat.HasProperty(propName))
        //			returnTex = procMat.GetTexture(propName);
        //	} catch (UnityException e){
        //		e.Equals(e);
        //	}
        //	return returnTex;
        //}



        public void UpdateCutLine()
        {
            if (SF_GUI.HoldingAlt() && Event.current.type == EventType.MouseDown && Event.current.button == 1)
            { // Alt + RMB drag
                StartCutting();
            }
            else if (SF_GUI.ReleasedRawRMB())
            {
                StopCutting();
            }

            if (isCutting)
            {
                Vector2 cutEnd = GetNodeSpaceMousePos();

                GUILines.DrawDashedLine(editor, cutStart, cutEnd, Color.white, 5f);


                foreach (SF_Node n in editor.nodes)
                {
                    foreach (SF_NodeConnector con in n.connectors)
                    {
                        if (con.IsConnected() && con.conType == ConType.cInput && con.enableState != EnableState.Hidden)
                        {
                            Vector2 intersection = Vector2.zero;
                            if (con.conLine.Intersects(cutStart, cutEnd, out intersection))
                            {
                                con.conLine.aboutToBeDeleted = true;

                                Vector2 hit = editor.nodeView.ScreenSpaceToZoomSpace(intersection);

                                float scale     = 5f;
                                float scaleDiff = 0.95f;
                                //Vector2 rg, up, lf, dn;


                                //Vector2 localRight = (cutStart-cutEnd).normalized;
                                //Vector2 localUp = new Vector2(localRight.y,-localRight.x);

                                //rg = hit + localRight * scale;
                                //up = hit + localUp * scale;
                                //lf = hit - localRight * scale;
                                //dn = hit - localUp * scale;
                                Color c0 = new Color(1f, 0.1f, 0.1f, 0.9f);
                                Color c1 = new Color(1f, 0.1f, 0.1f, 0.7f);
                                Color c2 = new Color(1f, 0.1f, 0.1f, 0.5f);
                                Color c3 = new Color(1f, 0.1f, 0.1f, 0.3f);

                                GUILines.DrawDisc(hit, scale, c0);
                                GUILines.DrawDisc(hit, scale - scaleDiff, c1);
                                GUILines.DrawDisc(hit, scale - scaleDiff * 2, c2);
                                GUILines.DrawDisc(hit, scale - scaleDiff * 3, c3);

                                //GUILines.DrawLine(rg,up,Color.red,2f,true);
                                //GUILines.DrawLine(up,lf,Color.red,2f,true);
                                //GUILines.DrawLine(lf,dn,Color.red,2f,true);
                                //GUILines.DrawLine(dn,rg,Color.red,2f,true);



                                continue;
                            }
                            else
                            {
                                con.conLine.aboutToBeDeleted = false;
                            }
                        }
                    }
                }
            }
        }