您的位置:首页 > 移动开发 > Unity3D

【Unity教程】UGUI中如何动态生成精灵的几种方法

2016-12-30 17:42 971 查看
sprite.create()的方法在这篇文章中【Unity&UGUI】动态改变精灵物体的图片

本篇文章主要说sprite.Load()方法是如何新建精灵的

---1.2D精灵物体的创建

这几行代码是创建2D精灵的主要代码,这几个代码都在start()函数中

        //Transform EGO = Resources.Load("EmptyGO",typeof(Transform))as Transform;

        //gob = Instantiate(EGO);//上面这两行代码是生成 预制体 物体 的代码

        GameObject pic = new GameObject("123/94");

        //加载图片,进行接收

        Sprite spr = Resources.Load<Sprite>("123/94");

        //添加加载到的图片资源到2D精灵组件

        pic.AddComponent<SpriteRenderer>().sprite = spr;

运行后,生成了名字为123/94的2D精灵,得到的图片也是测试用的图片



第一种情况,把123/94改成了94,因为测试的图片精灵名字是94

         GameObject pic = new GameObject("94");

        //加载图片,进行接收

        Sprite spr = Resources.Load<Sprite>("94");

        //添加加载到的图片资源到2D精灵组件

        pic.AddComponent<SpriteRenderer>().sprite = spr;

生成的精灵物体,名字已经改成了94,但是没有找到精灵物体



仔细观察代码发现,

         GameObject pic = new GameObject("94");//新建一个空的物体取个名字“94

        //加载图片,进行接收

        Sprite spr = Resources.Load<Sprite>("123/94");//创建一个精灵组件,路径为“123/94”

        //添加加载到的图片资源到2D精灵组件

        pic.AddComponent<SpriteRenderer>().sprite = spr;//把这个精灵组件,添加到 94 物体的组件中



---

Transform EGO = Resources.Load("EmptyGO",typeof(Transform))as Transform;

        gob = Instantiate(EGO);

---

这样也可以生成预制体精灵物体

//给定一个路径

       S_Path_ClothBasePrefab = "Prefab/Base2DSpriteRenderer";

        //Sprite BGO = Resources.Load<Sprite>(S_Path_ClothBasePrefab);

        //通过名字查到到预制体,类型为Transform,进行转换,接收

        UnityEngine.Transform Base2DSprite = Resources.Load(S_Path_ClothBasePrefab, typeof(UnityEngine.Transform)) as UnityEngine.Transform;

        gob = Instantiate(Base2DSprite);

使用transform查找对象比find函数更快

有的字符串是最常使用的,最好在初始化的时候定义一个私有字符串变量储存起来


因为使用了using UnityEngine;和using DragonBones;为了区分这两个命名空间相同的函数,有的地方前缀要加上UnityEngine.用来区分

预制体物体必须放在Resources文件夹下,空的2D精灵,便于创建替换







参考资料:12:unity3D-Resources加载预制体与Sprite精灵图片

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: