• untiy3d小工具——修改scene与prefab中的sprite


    • 坑1:因为替换图片要获取所有包含image的组件,开始我使用的是gameobject.getComponents<Image>()和FindObjectsOfType<Image>()  
      • 然鹅~getcomponts只能得到gameobject本身Image类型的所有组件,无法获取子物体上的
      • FindObjectsOfType<Image>()只能获取所有激活的image类型的物体,image的enable未开启也可以获取。
      • 使用GetComponentsInChildren<Image>(true)可以获得所有image组件,true的作用是将未激活的物体的也包含在集合中,不填写默认为FALSE。
      • 以下是测试结果

          

    • 坑2:很好,现在所有预设的图片都替换好了,并且ctrl+S,重新开了一遍工程,你会发现所有预设又回去了,为什么呢?我也不太清楚:-D。总之需要在代码里保存,在所有图片替换完毕后加一句EditorUtility.SetDirty(go); unity文档说明:如果您通过其他方式修改非场景对象,并且不希望为您的修改创建撤消条目时可以使用。
    • 坑3:记得加上场景保存代码EditorApplication.SaveScene();

    以下附上替换脚本,将脚本放在Editor文件夹下,如何获取需要修改的文件可以去查一下AssetDatabase的用法

    ps:一点体会,最近在做游戏界面,差不多完工到了整资源的时候,(菜鸟(是我)做界面就是会出很多错误)发现很多图片重复,一个个修改太麻烦了,前辈就让我写个小工具一起替换。没错!不知天高地厚的我以为这是个很简单的事情,于是交了一份全是漏洞的代码上去,前辈帮我指出错误的时候那叫一个羞愧啊冏rz。所以作为一个菜鸟,即使你很菜也一定要心细,不要眼高手低,呆在自己挖的井里就以为这是全世界了。

  • 相关阅读:
    Could note find result map com.xxxx.entity.UserAccountDO
    浏览器通过file://访问文件和通过http://访问文件有什么区别
    FreeMarker template error: The following has evaluated to null or missing: ==> blogger.md [in template "admin/about.ftl" at line 44, column 84]
    2018-01-03 --活动观赏鱼的2017总结及2018年展望
    eclipse open call hierarchy无效
    Mysql 查询重复的记录
    oracle用户、权限操作
    Oracle 修改表操作
    Python 魔法方法详解
    Python __dict__和vars()
  • 原文地址:https://www.cnblogs.com/ninomiya/p/7992251.html
Copyright © 2020-2023  润新知