gpt4 book ai didi

c# - Unity3D 旋转未按预期运行

转载 作者:太空宇宙 更新时间:2023-11-03 22:54:58 25 4
gpt4 key购买 nike

我正在尝试为模拟制作一个小演示,我认为这部分会很简单。男孩我错了,现在我完全被困住了。这是我的问题。

我正在尝试使用旋转,对于这个问题,我们将使用 30 度角,如下所示:

The green ray is -15 degrees, red is 0 degrees and blue is +15 degrees for a total of 30 degrees.

绿色射线为 -15 度,红色为 0 度,蓝色为 +15 度,共 30 度。

现在我想将所说的 30 度分成相等的部分,所以第一个合适的数字将是 10。这意味着我可以每 3 度绘制一条射线,直到达到最大值,在本例中为 +15 度。这可以在下面看到:

Looks good! There is a small amount of space that is off and if anyone knows why that is please let me know.

看起来不错!有少量空间已关闭,如果有人知道原因,请告诉我。

现在,我需要大量的光线,所以我们要增加 10 倍,并将分区数增加到 100,如下所示。此外,我需要使用 imgur,因为这里只允许使用两张图片,所以请多多包涵,谢谢。

https://imgur.com/a/cWDdj

第一张图片有 100 个 block ,如您所见,光线全部转换到左侧。这是一个问题。

第二张图片的格数增加到 1000。现在更糟糕的是,除 15 度区域外,格子一直绕着物体。

这是执行此操作的代码段。

 if(testRotation)   
{
//Sets the objects rotation to the starting rotation which is -15 degeres
this.transform.Rotate(this.transform.rotation.x, this.transform.rotation.y - 15.0f,
this.transform.rotation.z);

for (int i = 0; i <= 10; i++)
{
//Draws a ray at the current position and forwards relative to the objects transform
Debug.DrawRay(this.transform.position,
this.transform.forward * maxSightDistance, Color.cyan, 1000.0f);

//This advances the rotation by a factor of one chunk
//which in this case is 10 which seems to work
this.transform.Rotate(new Vector3(this.transform.rotation.x,
this.transform.rotation.y + (30/10), this.transform.rotation.z));
}

//This makes it so it doesn't run forever
testRotation = false;

}

唯一改变的地方是检查条件的 for 循环以及旋转函数的第二个参数,该参数将“一个 block ”添加到当前旋转值。

对于 100 个 block ,我将这些 block 修改为:for(int i = 0; i < 100; i++)this.transform.rotation.y + (30/100)

对于 1000 个 block ,我将这些 block 修改为:for(int i = 0; i < 1000; i++)this.transform.rotation.y + (30/1000)

我完全被困住了,不知道它为什么要这样做。另外,如果您需要解释或澄清的内容,请告诉我!

最佳答案

您将一个数字除以一个整数,这将返回一个整数。您需要除以 float 以返回十进制数。

this.transform.rotation.y + (30/100f)
this.transform.rotation.y + (30/1000f)

编辑:此外,rotate 的分量应该为 0 而不是它们以前的值,以避免旋转累积。

transform.Rotate(new Vector3(0, 30/10f, 0));

关于c# - Unity3D 旋转未按预期运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45844101/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com