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
C# 播放器边界实现和代码审查_C#_Performance_Unity3d_Optimization - Fatal编程技术网

C# 播放器边界实现和代码审查

C# 播放器边界实现和代码审查,c#,performance,unity3d,optimization,C#,Performance,Unity3d,Optimization,我需要你的帮助,在审查我的代码,并给我一些建议,如果我可以改善它不知何故 我正在学习unity课程,这家伙写了这个脚本来检查边界: if(transform.position.x < -boundRange) { transform.position = new Vector3(-boundRange, transform.position.y, transform.position.z); } if(transform.position.x > boundRange) {

我需要你的帮助,在审查我的代码,并给我一些建议,如果我可以改善它不知何故

我正在学习unity课程,这家伙写了这个脚本来检查边界:

if(transform.position.x < -boundRange)
{
    transform.position = new Vector3(-boundRange, transform.position.y, transform.position.z);
}
if(transform.position.x > boundRange)
{
    transform.position = new Vector3(boundRange, transform.position.y, transform.position.z);
}

我想了解哪种方法更好,为什么更好,并给我一些关于良好实践的建议,我对此不太担心。有很多方法可以完成编程中最简单的事情。例如,应用于您的案例,对于abs值:

a = System.Math.Math.Abs(f);
a = UnityEngine.Mathf.Abs(f);
a = Unity.Mathematics.math.abs(f);
if (f >= 0) a = f; else a = -f;
a = f >= 0 ? f : -f;
您需要找到一个更具可读性+可理解性+标准的代码,以使您和您的团队更容易理解代码。如果您在和
Update()
中,您可能还需要考虑一些性能问题,但在开始时,我也不太担心这一点。 对于您的特定情况,我发现第一个代码段更具可读性,而在第二个代码段中,如果x=0,您将遇到问题。 我会更加关注你应用程序的架构方法,以及unity组件方法,根据unity的理念进行思考,而不是将任何小细节作为最佳方式。那么,你编写的代码越多,你就会越注意细节而没有意识到。 希望这有意义

a = System.Math.Math.Abs(f);
a = UnityEngine.Mathf.Abs(f);
a = Unity.Mathematics.math.abs(f);
if (f >= 0) a = f; else a = -f;
a = f >= 0 ? f : -f;