Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/276.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/unity3d/4.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
C# 通过非单行为脚本控制数百个游戏对象_C#_Unity3d - Fatal编程技术网

C# 通过非单行为脚本控制数百个游戏对象

C# 通过非单行为脚本控制数百个游戏对象,c#,unity3d,C#,Unity3d,我将给出一个真实的例子:假设有一个NPC游戏对象,它正在世界/场景中漫游 这个NPC后面跟着成百上千的其他物体,这意味着当NPC改变方向时,所有其他物体也会改变方向 我通过在Unity inspector中创建数百个对象来实现这一点,并且每个对象都得到一个单行为脚本。这是可行的,但当然,它对性能有很大的影响 有没有其他更有效的方法让多个对象跟随另一个对象,而不在Monobehavior上运行它们?是的,在某个地方有一个单一的Monobehavior,它可以跟踪数千个变换并立即移动它们。或者看看云

我将给出一个真实的例子:假设有一个NPC游戏对象,它正在世界/场景中漫游

这个NPC后面跟着成百上千的其他物体,这意味着当NPC改变方向时,所有其他物体也会改变方向

我通过在Unity inspector中创建数百个对象来实现这一点,并且每个对象都得到一个单行为脚本。这是可行的,但当然,它对性能有很大的影响


有没有其他更有效的方法让多个对象跟随另一个对象,而不在Monobehavior上运行它们?

是的,在某个地方有一个单一的Monobehavior,它可以跟踪数千个
变换
并立即移动它们。或者看看云服务器。如前所述,这不是我,但有一个叫CodeMonkey的youtuber,他有一个系列,他在做ECS,然后他添加了作业系统,并在其中添加了burst编译器。我强烈建议你看看他的视频。如前所述,ECS在这种情况下工作得非常好。每个NPC都是一个实体,所有NPC都有相同的跟随行为(系统)。这种体系结构,再加上burst编译器,应该会大大提高NPC的性能,我想说的是,如果它们的代码仅仅基于以下内容,那么大约1000个NPC的速度为100+FPS。一句警告的话,统一点是一种正在进行的工作;我怀疑它将来会变得更加精简。