Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/performance/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Unity3D服装交换系统_Unity3d - Fatal编程技术网

Unity3D服装交换系统

Unity3D服装交换系统,unity3d,Unity3d,我正在设计一个衣服系统,角色可以改变衣服 现在我想到了两种方法,第一种是最简单的方法:只激活旧衣服和激活新衣服游戏对象,但这当然会占用很多内存 第二种方法是将网格数据从新衣服Skinmesh渲染器加载到旧衣服Skinmesh渲染器。但这会在游戏过程中导致额外的CPU计算 我想知道哪一种是好的,或者游戏中通常会使用其他方法吗?AAA产品使用更复杂的方法加载模型,这取决于模型需要如何动态更改。例如,若你们在游戏开始时选择了衣服,并且可以从几十件衣服中选择,那个么游戏将只加载一个模型,并删除其余的(或

我正在设计一个衣服系统,角色可以改变衣服

现在我想到了两种方法,第一种是最简单的方法:只激活旧衣服和激活新衣服游戏对象,但这当然会占用很多内存

第二种方法是将网格数据从新衣服Skinmesh渲染器加载到旧衣服Skinmesh渲染器。但这会在游戏过程中导致额外的CPU计算


我想知道哪一种是好的,或者游戏中通常会使用其他方法吗?

AAA产品使用更复杂的方法加载模型,这取决于模型需要如何动态更改。例如,若你们在游戏开始时选择了衣服,并且可以从几十件衣服中选择,那个么游戏将只加载一个模型,并删除其余的(或者根本不加载)。但是,如果衣服动态变化,比如英雄使用不同的攻击或工具(例如,当踢腿时刺刀有黑色衣服,但当使用特殊的头发攻击时是裸体的),所有模型都会加载,并在需要时交换。最后,这两种技术可以同时使用。但如果您在不考虑内存或速度的情况下创建生产,您可以选择任何您喜欢的产品。

AAA产品使用更复杂的方式加载模型,这取决于模型需要如何动态更改。例如,若你们在游戏开始时选择了衣服,并且可以从几十件衣服中选择,那个么游戏将只加载一个模型,并删除其余的(或者根本不加载)。但是,如果衣服动态变化,比如英雄使用不同的攻击或工具(例如,当踢腿时刺刀有黑色衣服,但当使用特殊的头发攻击时是裸体的),所有模型都会加载,并在需要时交换。最后,这两种技术可以同时使用。但是,如果您在不考虑内存或速度的情况下创建产品,您可以选择任何您喜欢的东西。

那么,从Prefable中为场景添加新衣服怎么样,让它成为您模型的孩子,并销毁旧衣服?这也是一个好主意!我更关心的是一流的标准游戏是如何做到这一点的。那么,从预制场向场景中添加新衣服,让它成为你模型的孩子,然后销毁旧衣服呢?这也是一个好主意!我更关心的是一流的标准游戏是如何做到这一点的。因此,如果我只在开始时选择衣服,我是否可以将我所有的衣服附加到我的角色游戏对象中,并在加载到下一个场景时销毁它们?我尝试了Resource.Load(),但是加载的衣服变得看不见了,你知道为什么吗?“我的衣服”需要根骨骼。@ywj7931它取决于您加载的资源类型,但如果它是模型预置,则需要实例化它。请看上的第二个示例。是的,我使用了这个示例,GameObject newobject=实例化(Resources.Load(“Shirt_02”,typeof(GameObject)))作为GameObject;预设是由SkinMesh渲染器组成的t恤游戏对象。但是网格在游戏中不可见,即使我在Inspectory中手动正确设置了根骨骼,您可能不需要像这样加载资源,您只需要实例化在编辑器中链接的预置。但如果你想使用这个,如果版本之间没有任何变化,你的预置需要在名为“资源”的文件夹中。明白了,谢谢!所以,如果我只在开始时选择衣服,我真的可以将我所有的衣服附加到我的角色游戏对象中,并在加载到下一个场景时销毁它们吗?我尝试了Resource.Load(),但是加载的衣服变得看不见了,你知道为什么吗?“我的衣服”需要根骨骼。@ywj7931它取决于您加载的资源类型,但如果它是模型预置,则需要实例化它。请看上的第二个示例。是的,我使用了这个示例,GameObject newobject=实例化(Resources.Load(“Shirt_02”,typeof(GameObject)))作为GameObject;预设是由SkinMesh渲染器组成的t恤游戏对象。但是网格在游戏中不可见,即使我在Inspectory中手动正确设置了根骨骼,您可能不需要像这样加载资源,您只需要实例化在编辑器中链接的预置。但如果你想使用这个,如果版本之间没有任何变化,你的预置需要在名为“资源”的文件夹中。明白了,谢谢!