NGUI + Unity3d Урок 6 - Программное создание виджетов

Привет. В предыдущих уроках мы создавали виджеты с помощью редактора. Но иногда необходимо сделать это программно. В данном уроке показано, как создать виджет с помощью кода.



Код под катом…



MyBut.cs:

using UnityEngine;
using System.Collections;

public class MyBut : MonoBehaviour
{
    public UIBaseAtlas _atlas;
    public UIBaseFont _font;
    public GameObject _parent;

    private GameObject _goButton;
    // Use this for initialization
    void Start()
    {
        CreateButton(_parent);
    }

    /// <summary>
    /// Button creation function.
    /// </summary>

    void CreateButton(GameObject go)
    {
        int depth = NGUITools.CalculateNextDepth(go);
        go = NGUITools.AddChild(go);
        go.name = "MyButton";
        _goButton = go;

        UISlicedSprite bg = NGUITools.AddWidget<UISlicedSprite>(go);
        bg.name = "Background";
        bg.depth = depth;
        bg.atlas = _atlas;
        bg.spriteName = "Button";
        bg.transform.localScale = new Vector3(100f, 30f, 1f);
        bg.MakePixelPerfect();


        UILabel lbl = NGUITools.AddWidget<UILabel>(go);
        lbl.font = _font;
        lbl.text = "My Text";
        lbl.MakePixelPerfect();

        // Add a collider
        NGUITools.AddWidgetCollider(go);

        // Add the scripts
        TweenPosition tp = go.AddComponent<TweenPosition>();
        tp.to = new Vector3(0, 200, 0);
        tp.duration = 4f;
        tp.Play(true);
        Invoke("RemoveButton", 5f);

    }

    void RemoveButton()
    {
        DestroyObject(_goButton);
    }
}

5 комментариев

avatar
/*
public UIBaseAtlas _atlas;
public UIBaseFont _font;
*/
В моей версии вот так:

public UIAtlas _atlas;
public UIFont _font;
avatar
Вот что получилось www.youtube.com/watch?v=pJFf4aitCuM&feature=youtu.be
avatar
Если будут еще пожелания — welcome!)
avatar
Перезалей видео.
  • Kuim
  • 0
avatar
Done!
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.