当前位置: 首页 > news >正文

wordpress页面的添加背景音乐/网站seo诊断

wordpress页面的添加背景音乐,网站seo诊断,实验室网站建设,营销成功案例最近为美术编写一个Unity编辑器的扩展,主要为了减轻美术在修改预制对象时的机械化操作的繁琐和出错。具体实现的几个功能: 1、删除指定组件; 2、复制、粘贴指定的组件; 3、重新关联新的属性; 4、重新保存预制对象&…

最近为美术编写一个Unity编辑器的扩展,主要为了减轻美术在修改预制对象时的机械化操作的繁琐和出错。具体实现的几个功能:

1、删除指定组件;

2、复制、粘贴指定的组件;

3、重新关联新的属性;

4、重新保存预制对象;

 

一、删除指定类型的组件

public static void RemoveComponentHandler(GameObject gameObject, Type componentType){foreach (var component in gameObject.GetComponents<Component>()){if (component.GetType() == componentType){GameObject.DestroyImmediate(component);}}    }

 

二、复制组件(这里实现的是一次仅复制一个某类型的组件)

public static void CopyComponentHandler(Type componentType, GameObject fromGameObject, GameObject toGameObject){RemoveComponentHandler(toGameObject, componentType);// 查找需要复制的 ComponentComponent needCopyComponent = null;foreach (var component in fromGameObject.GetComponents<Component>()){if (component.GetType() == componentType){needCopyComponent = component;break;}}// 进行粘贴操作// http://answers.unity3d.com/questions/907294/copy-all-components-from-a-gameobject-and-paste-to.html
        UnityEditorInternal.ComponentUtility.CopyComponent(needCopyComponent);UnityEditorInternal.ComponentUtility.PasteComponentAsNew(toGameObject);}

 

三、关联新属性

就是遍历指定的GameObject,然后找到它附加的组件,重新设置其值即可。

 

四、替换预制对象

GameObject activeGameObject = Selection.activeGameObject;
if (activeGameObject != null)
{// 获取当前的idif (new Regex(@"^\d+h$").IsMatch(activeGameObject.name)){UnityEngine.Object parentObject = null;string strPrefabPath = "";if (PrefabUtility.GetPrefabType(activeGameObject) == PrefabType.PrefabInstance){parentObject = EditorUtility.GetPrefabParent(activeGameObject);strPrefabPath = AssetDatabase.GetAssetPath(parentObject);}// 查找idstring strId = new Regex(@"h$").Replace(activeGameObject.name, "");// 第六步 保存预制对象string strCurrSelectPrefabName = activeGameObject.name;if (strPrefabPath.EndsWith(".prefab")){// string[] dependPaths = AssetDatabase.GetDependencies(strPrefabPath);GameObject go = GameObject.Instantiate(GameObject.Find(strCurrSelectPrefabName)) as GameObject;PrefabUtility.ReplacePrefab(go, parentObject, ReplacePrefabOptions.ConnectToPrefab);GameObject.DestroyImmediate(activeGameObject);go.name = strCurrSelectPrefabName;                    AssetDatabase.Refresh();}Debug.Log("预制对象 " + strCurrSelectPrefabName + " 修改完成。");}else{Debug.Log("当前选中的GameObject命名不符合要求,格式:id+h。\tGameObject Name : " + activeGameObject.name);}           
}

最核心的几行代码:

1、实例化一个新的GameObject;

2、替换预制对象;

3、销毁老的GameObject;

4、刷新资源;

 

 

对于美术的同事来讲,最复杂、麻烦的莫过于重新关联属性,特别是骨骼动画。因为之前没有统一的规范,所以关联哪一段动画实际上是需要一层一层找的,我看着他们找都觉得累,怎么办呢?我想到一个办法,就是通过name查找新的组件,然后重新赋值关联。通过Name查找某个GameObject下的子节点(前提条件是该Name唯一)

public static GameObject FindChildGameObject(GameObject parent, string childName){if (parent.name == childName){return parent;}if (parent.transform.childCount < 1){return null;}GameObject obj = null;for (int i = 0; i < parent.transform.childCount; i++){GameObject go = parent.transform.GetChild(i).gameObject;obj = FindChildGameObject(go, childName);if (obj != null){break;}}return obj;}

 

上面基本上实现了,组件几个常用的方法:

1、添加组件(先复制后粘贴);

2、删除组件;

3、通过名字查找子组件;

4、更新预制对象;

http://www.lbrq.cn/news/1532395.html

相关文章:

  • jsp网站开发详解 pdf/百度关键词搜索排名
  • 制作logo的网站/软文营销方法有哪些
  • 南京浦口做网站点/我要推广
  • 建设网站要不要投资钱/2000元代理微信朋友圈广告
  • 大丰市市城乡建设局网站/友情链接交易平台
  • 厦门建设网站/电商运营培训课程
  • 湖北工程建设信息网/石家庄seo扣费
  • 交互式网站备案难吗/企业培训公司
  • 南宁网站建设产品/网络营销项目策划
  • 望城做网站找谁/抖音账号权重查询入口
  • 织梦模板如何安装/福州短视频seo推荐
  • 网站建设经费方案/百度指数人群画像
  • 京东网站设计的特点/2023年新闻摘抄十条
  • 哈尔滨微网站建设/google推广技巧
  • 淳安县建设局网站/网络推广代理怎么做
  • 软件开发工具平台/seo是什么化学名称
  • 服务器做的网站怎么使用教程/网络营销的定义
  • php自己做网站访问量计算/谷歌浏览器网页
  • 阿里虚拟主机怎么做两个网站/网络推广深圳有效渠道
  • 沈阳建立网站/win10优化大师免费版
  • 做几个网站好/关键词网站排名软件
  • 网站建设拥有域名后如何操作/查看浏览过的历史记录百度
  • 一键生成app工具/seo外链建设的方法
  • 360doc 网站怎么做/长沙新媒体营销
  • 个旧网站建设/如何做seo搜索引擎优化
  • wordpress正体中文/百度seo排名主要看啥
  • 怎样把录的视频做一下传到网站/链接交易网
  • b2c电子商务团购网站建设/什么是搜索引擎营销
  • 做网站有什么用/每日新闻摘要30条
  • wordpress底部友情链接/深圳seo公司排名
  • 【STM32】HAL库中的实现(六):DAC (数模转换)
  • ios使用saveVideoToPhotosAlbum 保存视频失败提示 invalid video
  • 大数据计算引擎(四)—— Impala
  • 基于深度学习的车牌检测识别系统:YOLOv5实现高精度车牌定位与识别
  • 云计算- KubeVirt 实操指南:VM 创建 、存储挂载、快照、VMI全流程 | 容器到虚拟机(镜像转换/资源调度)
  • 配置 NVIDIA RTX 5090 + sm_120 + flashattention,已跑通一个大模型 ~~