Пример #1
0
    // Start is called before the first frame update
    void Start()
    {
        PowerZoomTarget = transform.parent.Find("PowerZoomTarget").gameObject;

        SlideI = 0f;
        Icon   = transform.Find("Icon").gameObject;

        MagicGlowParticle = Icon.transform.Find("MagicGlowParticle").gameObject;
        PS       = MagicGlowParticle.GetComponent <ParticleSystem>();
        Emission = PS.emission;

        StartRotation = Icon.transform.localRotation;
        EndRotation   = Quaternion.FromToRotation(Vector3.forward, Icon.transform.localPosition - PowerZoomTarget.transform.localPosition);

        StartPosition = Icon.transform.localPosition;
        EndPosition   = StartPosition + new Vector3(0, 0, -.25f);

        MagicMenu          = transform.parent.GetComponent <MagicMenu>();
        PowerPreviewScript = Icon.transform.GetComponentInChildren <PowerPreviewScript>();
    }
    public static void DrawBridges(ref Texture2D texture, MagicMenu magicMenu, float rStart, float rEnd, Color color)
    {
        var sectionAngle = (float)(2 * Math.PI / magicMenu.Magics);

        //Debug.Log(rStart);
        //Debug.Log(rEnd);
        for (int m = 0; m < magicMenu.Magics; m++)
        {
            var angle = sectionAngle * m;

            var x      = (float)Math.Cos(angle);
            var y      = (float)Math.Sin(angle);
            var center = new Vector2(texture.width / 2, texture.height / 2);

            var p1 = new Vector2((int)(x * rStart), (int)(y * rStart));
            var p2 = new Vector2((int)(x * rEnd), (int)(y * rEnd));

            for (var z = -2f; z < 2f; z += .01f)
            {
                var q = Quaternion.Euler(0, 0, z);
                DrawLine(ref texture, (Vector2)(q * p1) + center, (Vector2)(q * p2) + center, color);
            }
        }
    }