zoukankan      html  css  js  c++  java
  • 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。所以作为一个菜鸟,即使你很菜也一定要心细,不要眼高手低,呆在自己挖的井里就以为这是全世界了。

  • 相关阅读:
    Vim快捷键,行首行尾
    java程序 cpu占用过高分析
    svn merge操作
    linux root用户无法删除文件,提示permission denied
    诡异问题:tomcat启动一直卡住,strace跟踪提示apache-tomcat核心文件找不到。
    转:xcode项目打不开:incompatible project version问题
    路由器当交换机用
    visual studio远程调试 remote debugger
    Sql server锁
    long 在不同操作系统下所占用的字节数
  • 原文地址:https://www.cnblogs.com/ninomiya/p/7992251.html
Copyright © 2011-2022 走看看