示例#1
0
    // Use this for initialization
    void Start()
    {
        objects     = new List <GameObject>();
        candyRadius = GameObject.Find("Candy").GetComponent <SpriteRenderer>().bounds.size.x * 0.5f;
        radius     += candyRadius;
        scpt        = GameObject.Find("@GenerateRope").GetComponent <GenerateRope>();
        for (int i = 0; i < hook.Length; i++)
        {
            if (hook[i])
            {
                if (isHook)
                {
                    scpt.GenerateNewRope(hook[i].position, transform.position, null);
                }
                else
                {
                    scpt.GenerateNewRope(hook[i].position, transform.position, gameObject.AddComponent <HingeJoint2D>());
                }
            }
        }

        if (isAttractiv)
        {
            float nbPoints = 360 / (radius * 30);
            for (float i = 0; i < 360; i += nbPoints)
            {
                GameObject gb = Instantiate(radiusVisual, transform.position + Vector3.up * (radius + candyRadius * 2.0f), Quaternion.identity);

                gb.transform.RotateAround(transform.position, Vector3.forward, i);
                gb.transform.parent = transform;
                objects.Add(gb);
            }
        }
    }
    public override void OnInspectorGUI()
    {
        EditorGUILayout.HelpBox("HOW TO USE: Place this script on an empty object, then give it a rope segment prefab. Indicate amount of segments you want and click generate.", MessageType.Info);
        DrawDefaultInspector();

        GenerateRope myScript = (GenerateRope)target;

        if (GUILayout.Button("Generate Rope"))
        {
            myScript.createRopesQty();
        }

        if (GUILayout.Button("Reset"))
        {
            myScript.Reset();
        }
    }