示例#1
0
    public void Rolling(XBezierArrow sourceArrow)
    {
        Destroy(sourceArrow.GetComponent <MeshFilter> ());
        Destroy(sourceArrow.GetComponent <MeshRenderer> ());

        var destArrow = gameObject.AddComponent <XBezierArrow2> ();

        destArrow.step        = sourceArrow.step;
        destArrow.yWidthCurve = sourceArrow.yWidthCurve;
        destArrow.headWid     = sourceArrow.headWid;
        destArrow.p0          = sourceArrow.p0;
        destArrow.p1          = sourceArrow.p1;
        destArrow.p2          = sourceArrow.p2;
        destArrow.p3          = sourceArrow.p3;

        destArrow.stepCount = sourceArrow.stepCount;
        destArrow.UVCount   = 40;
        Gradient g = new Gradient();

        g.colorKeys = new GradientColorKey[] {
            new GradientColorKey(Color.white, 0),
            new GradientColorKey(Color.white, 1),
        };
        g.alphaKeys = new GradientAlphaKey[] {
            new GradientAlphaKey(1, 0),
            new GradientAlphaKey(1, 0.8f),
            new GradientAlphaKey(0, 1)
        };
        destArrow.gradient = g;
        destArrow.UVOffset = new Vector2(0.01f, 0);
        destArrow.mesh1    = CreateMesh("Mesh1", "Strip");
        destArrow.mesh2    = CreateMesh("Mesh2", "StripLoop");

        destArrow.UpdateUVRenderer = destArrow.mesh2.GetComponent <MeshRenderer> ();
    }
    private void SaveTemplate(XBezierArrow script)
    {
        XBezierArrowTemplate template = XScriptableObject.Create <XBezierArrowTemplate>(null);

        template.Save(script);
        template.SaveInEditor();
//		string path = AssetsUtilites.SaveFilePanel( "XBezierArrow Save Template", XEditorSetting.ProjectPath, script.gameObject.name + ".asset", "asset", true );
//		if( path == "" )
//			return;
//
//		path = FileUtil.GetProjectRelativePath( path );
//
//		XBezierArrowTemplate template = XScriptableObject.Create<XBezierArrowTemplate>();
//		template.Save (script);
//		AssetDatabase.CreateAsset( template, path );
//		AssetDatabase.SaveAssets();
    }
示例#3
0
    public void Save(XBezierArrow script)
    {
        this.position   = script.transform.position;
        this.rotation   = script.transform.rotation;
        this.localScale = script.transform.localScale;

        position0 = script.position0;
        position1 = script.position1;
        position2 = script.position2;
        position3 = script.position3;

        step           = script.step;
        yWidthCurve    = script.yWidthCurve;
        headRDTexCoord = script.headRDTexCoord;
        headRTTexCoord = script.headRTTexCoord;
        headWid        = script.headWid;
        stepCount      = script.stepCount;
    }
示例#4
0
    public void CreateFromTemplate(XBezierArrow script)
    {
        script.transform.position   = position;
        script.transform.rotation   = rotation;
        script.transform.localScale = localScale;

        script.position0 = position0;
        script.position1 = position1;
        script.position2 = position2;
        script.position3 = position3;

        script.step           = step;
        script.yWidthCurve    = yWidthCurve;
        script.headRTTexCoord = headRTTexCoord;
        script.headRDTexCoord = headRDTexCoord;
        script.headWid        = headWid;
        script.stepCount      = stepCount;

        script.Refresh();

        script.isNeedUpdate = false;
    }
示例#5
0
    public void ExportPolygon()
    {
        XBezierArrow bezierArrow = this.As <XBezierArrow>();

        var points      = bezierArrow.GetTotalPoints().ToArray();
        var arrayPoints = new Vector2[points.Length];

        for (int i = 0; i < points.Length; i++)
        {
            arrayPoints[i] = points[i];
        }
        if (colliderType == ColliderType.PolygonCollider)
        {
            PolygonCollider2D collider = this.As <PolygonCollider2D>();
            collider.points = arrayPoints;
        }
        else
        {
            EdgeCollider2D collider = this.As <EdgeCollider2D>();
            collider.points = arrayPoints;
        }
    }