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
Unity3d 变换和旋转(点、轴、角度)之间的区别是什么;和变换。旋转(轴、角度)_Unity3d - Fatal编程技术网

Unity3d 变换和旋转(点、轴、角度)之间的区别是什么;和变换。旋转(轴、角度)

Unity3d 变换和旋转(点、轴、角度)之间的区别是什么;和变换。旋转(轴、角度),unity3d,Unity3d,我的理解是- transform.RotateAround(point,axis,angle); 这会将变换从点沿轴旋转给定角度 但是下面的语句做什么呢 transform.RotateAround(axis,angle); 以下两个语句是否等效 transform.RotateAround(transform.position,axis,angle); and transform.RotateAround(axis,angle); 虽然这看起来很奇怪,但我相信两者的区

我的理解是-

transform.RotateAround(point,axis,angle);  
这会将变换从点沿轴旋转给定角度

但是下面的语句做什么呢

transform.RotateAround(axis,angle); 
以下两个语句是否等效

transform.RotateAround(transform.position,axis,angle); and        transform.RotateAround(axis,angle);

虽然这看起来很奇怪,但我相信两者的区别如下

transform.RotateAround(Point, axis, angle);
以上公式采用弧度来执行变换

transform.RotateAround(axis, angle);
上面的公式使用弧度围绕transform.position旋转

双参数版本过去采用度而不是弧度,但一些人声称这已经改变,尽管文档中可能尚未更新

所以基本上你最后关于他们相等的陈述应该是正确的,是的


我也使用了unity的一个来源:

所以我得到的不一致性是因为两个函数中的角度单位不同(尽管它们看起来相似),如果你在问题的底部用相同的值(以度为单位)调用两个版本,这似乎很奇怪从2参数版本中得到了奇怪的结果,可能它仍然采用弧度而不是度数。试着用一种期望相同结果的方式给他们打电话。使用度调用第一个和第二个并进行比较,如果2参数版本的结果相差很远,则尝试使用弧度调用它。它们要么都使用度,要么2参数版本使用弧度,第一个(3参数版本)根据我发布的链接使用度