游戏开发角色定制的换装流程详解

游戏开发角色定制的换装流程详解

unity3d 换装笔记

最新推荐文章于 2022-03-14 08:00:00 发布

原创

最新推荐文章于 2022-03-14 08:00:00 发布

·

1.6k 阅读

·

0

·

1

·

CC 4.0 BY-SA版权

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

unity3d

专栏收录该内容

1 篇文章

订阅专栏

首先理清CharacterCustomization例子里面的换装基本思路:

1. 对characters 目录下各个角色进行 打包.

2. 在读取的时候动态将里面的数据 读取出来即可.

这是最基本的, 但是中间有几部很重要的。

1. characters 目录下的资源是不能直接使用的.

2. 模型,材质,骨骼都是有一定关系。

3. 很多时候这种关系是通过文件名来组织在一起的。

打包的时候已经把这种关系理好了。

这种关系是:

1. 模型, 信息存储在Skinned Mesh Render 接口里. 包含蒙皮信息与模型数据的引用

2. 动作, 数据存在根节点的Animation组件内, 比如Female元件里.

3. 材质, 用文件名与模型中的联系起来

实现步骤

1. 将源资源按照内部关系生成 各种Prefab 并分好类.(用编辑器命令实现)

内部关系即, 模型材质蒙皮信息 属于哪个部件。每个部件属于哪个角色的哪不分。

原来叫 CreateAssetbundles.cs , 去除了动态加载 就叫 CreatePrefabAsset.cs

这里有个重要的点, 就是生成的数据有两种. 一种是一般的Prefab. 另一种ScriptableObject.

ScriptableObject 有点坑的是, 只能支持一些简单的数据结构, 比如Array, List. string, 等.

要有一些组合的结构, 就要另外加结构 并 在开头打上 [Serializable] 关键字。

恩, 这里还有一个概念, 就是打包的时候可能会用到一些 GameObject。 需要将其生成为Prefab后,

对他的引用才能有效, 这点很好理解, 因为动态生成的GameObject, 在编辑器命令执行完后肯定就销毁了。

2. 有了上面的 ScriptableObject 数据后。 将其组装起来即可,

骨架是直接用Prefab 克隆的, 模型数据与材质都在自定义的类, 叫 RoleElement 里 .

蒙皮的骨骼点就是用 骨骼的名称来 重新查找好了.统统这些资源都在 RoleResource 里.

剩下的重点就在怎么使用 CombineInstance组件功能 将其数据都拼接成一个模型.

当然不用 CombineInstance, 直接将各做好的部件添加到人物的root下面也行, 可效率可就低好多倍。

因为不管渲染多少次, 时间都是差不多的. 因此尽量把要的东西一次渲染, CombineInstance 帮我们做的就是这事。

这里主要的坑还是将数据打成对应的Prefab后,再成功读取出来这个步骤上。

以及 一些基本概念的理解。剩下的就看源代码吧。

相关数据

365提款一周都没到 考研帮怎么样?怎样找个靠谱的考研辅导班?
彩票365手机版官方下载 年的成语

年的成语

07-10 访问量: 1808
365bet体育官网开户 人与猿类如何在进化中“甩掉”尾巴