Unity推出的DOTS技术,通过ECS架构来提高CPU的缓冲命中率,Job System提供方便的多线程代码编写,Burst Compiler编译生成高性能代码。

下面我们分别用普通的方式和DOTS的方式来实现10000个运动的Cube同屏渲染的例子来看下其性能区别。

1. 先创建OPPMoveScript.cs来实现Cube的随机旋转和移动:

 1 using UnityEngine;
 2 
 3 public class OPPMoveScript : MonoBehaviour
 4 {
 5     private Vector3 _rotateSpeed;
 6     private Vector3 _moveSpeed;
 7     private float _moveDistance;
 8 
 9     private Vector3 _origin;
10     private float _distanceSqr;
11 
12     void Start()
13     {
14         _rotateSpeed.x = Random.value * 360;
15         _rotateSpeed.y = Random.value * 360;
16         _rotateSpeed.z = Random.value * 360;
17 
18         _moveSpeed.x = Random.Range(0.5f, 1f);
19         _moveSpeed.z = Random.Range(0.5f, 1f);
20         _moveSpeed.y = Random.Range(0.5f, 1f);
21 
22         _moveDistance = Random.Range(0.5f, 1f) * 5;
23 
24         _origin = transform.position;
25         _distanceSqr = _moveDistance * _moveDistance;
26     }
27 
28     void Update()
29     {
30         transform.Rotate(_rotateSpeed * Time.deltaTime);
31         transform.Translate(_moveSpeed * Time.deltaTime);
32 
33         if (Vector3.SqrMagnitude(transform.position - _origin) > _distanceSqr)
34         {
35             _moveSpeed = -_moveSpeed;
36         }
37     }
38 }
View Code

相关文章:

  • 2022-12-23
  • 2021-07-19
  • 2021-12-27
  • 2021-09-12
  • 2022-12-23
  • 2022-12-23
  • 2021-11-23
  • 2021-11-12
猜你喜欢
  • 2021-05-08
  • 2021-06-15
  • 2022-12-23
  • 2022-01-23
  • 2022-02-28
  • 2022-02-11
  • 2022-02-24
相关资源
相似解决方案