【Unity精灵】2D精灵图片替换常见的问题
一开始就从大的方向建立起一堆逻辑代码,然而对于一个新手来说,大的逻辑是正确的
小的毛病很多,这就造成了很多小的逻辑的麻烦
替换精灵,如果精灵已经建立起来,并且有了标签tag的时候,遍历同一个标签的物体,将是最好的打算,然后在
把范围缩小,使得最后找到目标
动态更换物体的2D精灵最简单的两句代码
这个路径是Resources文件夹下面的ImageSprite/BodyCloth/Clothtest001/Clothtest001B/hand/文件夹的Cloth_Left_Hand_1文件,不管是什么,最好是对应的图片
Sprite spr = Resources.Load<Sprite>("ImageSprite/BodyCloth/Clothtest001/Clothtest001B/hand/Cloth_Left_Hand_1");//生成精灵
gameObject.GetComponent<SpriteRenderer>().sprite = spr;
然后遍历相同标签的物体
foreach (var cloth_respawn in cloth_respawns)
{
Debug.Log(cloth_respawn.name);
}
这个遍历函数也是正确的,那么就开始判断
foreach (var cloth_respawn in cloth_respawns)
{
string sprspr = Cloth_RPath + cloth_respawn.name;//获得文件路径
Debug.Log(sprspr);//查看 是否是正确的
Sprite spr = Resources.Load<Sprite>(sprspr);//生成精灵
cloth_respawn.gameObject.GetComponent<SpriteRenderer>().sprite = spr;//再看这句话是否正确执行
}
发现大量 要替换的精灵 没有被替换成想要的精灵
看着看着发现是因为,有的 相同标签的物体的精灵 其中有一部分是不用 换精灵的,在
Sprite spr = Resources.Load<Sprite>(sprspr);//生成精灵
使用了Debug.Log(spr.name);
cloth_respawn.gameObject.GetComponent<SpriteRenderer>().sprite = spr;//再看这句话是否正确执行
发现报错,spr不存在,没有实例化。既然没有实例化,那么就是为空的,如果不为空,那么Debug.Log(spr.name);说不定就可以
foreach (var cloth_respawn in cloth_respawns)
{
string sprspr = Cloth_RPath + cloth_respawn.name;
Debug.Log(sprspr);
//下面的精灵图片的文件路径
Sprite spr = Resources.Load<Sprite>(sprspr);//生成精灵
if (spr != null)
{
cloth_respawn.gameObject.GetComponent<SpriteRenderer>().sprite = spr;
}
}
然后发现的确是这样,当这个精灵为空的时候,UNITY并不知道,然后就出现了错误
发现替换精灵的图片的名称不对,这个时候,就要重新导入图片,使得图片和精灵的名称一致
路径太长ImageSprite/BodyCloth/Clothtest001/Clothtest001B/hand/Cloth_Left_Hand_1,缺少斜杠
逻辑的方向是对的,就要从一点一滴开始实践
【Unity精灵】2D精灵图片替换常见的问题相关推荐
- Unity WebGL 2D精灵图在手机端浏览器显示蓝色
因为原图分辨率较大,为了清晰度,更改了MaxSize超过2048后,该图会在手机端浏览器显示为淡蓝色.
- Unity ~2D精灵动画制作
Unity 中如果要进行2D游戏的开发,刚开始没有选择2D创建项目的时候,需在Unity 中进行设置 1.Etid–>Project Settings–>Etidor 2.将相机设置为正焦 ...
- unity怎么用精灵
怎样判断是否应该使用精灵 在一套UI中,精灵是一种非常常见的元件.当制作UI时,如果需要显示一张图片,需要先判断这个图片是否应该制作到图集里去,然后用精灵的方式去使用它,一般来说,可以遵循以下规律. ...
- unity学习笔记-精灵集和精灵动画
2D游戏中,对精灵的操作需求,往往是两点: 1. 静态精灵:一般做背景展示等 2. 精灵动画:帧动画.骨骼动画等 声明:以下对Unity的操作,基于Unity3D 4.3.4,本人初学Unity,没用 ...
- cocos2dx 3.x(动态改变精灵的背景图片)
//更换精灵CCSprite的图片有两种方式. //直接通过图片更换 //使用setTexture(CCTexture2D*)函数,可以重新设置精灵类的纹理图片. // auto bg = Sprit ...
- Unity打开电脑本地文件夹选择图片替换
Unity打开电脑本地文件夹选择图片替换 创建工程添加对应的UI如图所示 创建ChangeImage脚本来监听按钮事件 创建OpenFileName脚本 将代码挂在到窗口,点击运行 创建工程添加对应的 ...
- threejs使用精灵图添加图片贴图
threejs添加精灵图片 使用精灵图添加图片贴图 使用精灵图添加图片贴图 const sprite = new THREE.Sprite(new THREE.SpriteMaterial({map: ...
- Unity的2D图集处理,并切割出一张张小图片
(转载请注明出处:http://blog.csdn.net/hongyouwei/article/details/45011315) 在我们找资源的时候,有时候会遇到那种把一堆图片放进一张png图片里 ...
- cocos2dx学习之路(七)——精灵、精灵旋转、淡入、水平翻转、自由移动、九宫格精灵
理解精灵的含义 学会创建一个精灵 掌握对精灵的控制 了解九宫格精灵及其应用 Sprite在2D游戏场景设计中指的就是像素图可以移动可以控制 1.通过图片路径创建精灵 Sprite* sprite = ...
最新文章
- AI语音独角兽思必驰完成数亿元Pre-IPO融资,冲刺苏州AI创业第一股
- html5 video标签不能播放视频,h5 video 视频不能正常播放
- 【机器学习】算法模型自动超参数优化方法
- keil_rtx特点
- java锁实现_Java锁实现
- big类型和double类型
- chm打开空白(chm打开空白)
- Facebook母公司:混合现实走向市场还需要数年时间
- 初识C语言,一起迈入编程世界的大门
- 六级英语 之 经济贸易
- Directx11教程(49) stencil的应用-镜面反射
- 剑指 Offer II 076. 数组中的第 k 大的数字
- 中国全国及各地人口总数和男女比例情况
- 22nd Century向FDA递交该公司极低尼古丁含量香烟的改良风险烟草产品(MRTP)申请
- 虚拟现实在文物古迹方面的应用
- 一文带你了解Java8之Stream
- 头条暑期训练营往期题目及个人答案
- android 电池监控软件,电池监控器 Battery Monitor Widget Pro for Android
- Linux-(16)管道和重定向
- FTP主动模式和被动模式的工作流程
热门文章
- pam mysql安装_安装pam-mysql
- html中上下左右控制对象移动Demo
- 实现百度第三方登陆详细解答
- 缓存穿透和缓存雪崩的一些解决方案
- Redis——模拟手机验证码发送
- Soda Theme sublime 自定义编辑器主题
- No matching version found for @soda/friendly-errors-webpack-plugin@1.8.0.
- 量化交易日记20210120
- 语言与区域设置ID (Language ID、Locales ID / LCID)
- 蓝牙mesh-拓扑结构