unity代码添加动画,并传参数

测试界面

button一个
sprite一个

测试代码

public class BgObject : MonoBehaviour {

    void Start()
    {
        List<string> btnsName = new List<string>();
        btnsName.Add("login");

        foreach (string btnName in btnsName)
        {
            GameObject btnObj = GameObject.Find(btnName);
            Button btn = btnObj.GetComponent<Button>();
            btn.onClick.AddListener(delegate()
            {
                this.OnClick(btnObj);
            });
        }
    }

    public void OnClick(GameObject sender)
    {
        switch (sender.name)
        {
            case "login":
                Dictionary<string,string> dic = new Dictionary<string,string>();
                dic.Add("111","333");
                StartCoroutine(flip(dic));
                break;
            default:
                Debug.Log("none");
                break;
        }
    }

    IEnumerator flip(Dictionary<string, string> dic)
    {
        Text infoText = (Text)GameObject.Find("info").GetComponent<Text>();
        infoText.text = dic["111"];
        Transform obj = GameObject.Find("dizhu").transform;

        bool isDone = false;

        while (!isDone)
        {
            float x = obj.localPosition.x + Time.deltaTime;
            obj.localPosition = new Vector3(x, 0,0);

            if (obj.localPosition.x >= 0)
            {
                isDone = true;
            }
            yield return new WaitForSeconds(1 / 60);
        }
    }
    // Update is called once per frame
    void Update () {
    
    }

代码非常简单,没有什么好说明的

需要注意的一点就是

unity里面的动画,由animation controller去绑定n个animation clip,但是在这里是直接生成的,可以当成是代码实现的animation clip

原文地址:https://www.cnblogs.com/ziyouchutuwenwu/p/4381070.html