Repeat方法:取模运算教材与Unity控制台输出数值不同的原因

学习该知识点的参考教材:Unity API解析/陈宏泉编著.——北京:人民邮电出版社,2014.9

编辑脚本的环境:Visual Studio 2022

在学习该本教材的第五章Mathf类的内容,通过跟随教材上的代码了解不同UnityAPI的具体用法时,我发现了一个问题:在本书5.2.10板块Repeat方法:取模运算的相关知识点中,教材中给出的示例代码运行出的结果,与我在Unity引擎中实际运行出的结果不同,以下为教材与Unity的截图对比:

教材:

 

Unity及VS2022:

图1-1

 图1-2

为了找到数值不同的原因,我通过跟踪Mathf.Repeat();方法找到了涉及到的所有方法,见图: 

图1-3

 图1-4

图1-5

其中,Floor函数为向下取整函数,其实现的功能例如:

print(math.floor(3.7))  # 输出: 3
print(math.floor(2))    # 输出: 2
print(math.floor(-2.3)) # 输出: -3

整合以上信息,以图1-1中的"t<0,l<0时:"的系列数值为例,经过“烂笔头”的计算:得出

Debug.Log("t>0,l>0时:" + Mathf.Clamp(-1.9f,0f,-5.3f));

其实,按照图1-5的命名逻辑,此时得出的结果已经违背了Clamp方法对实现相应功能的设想(个人认为Clamp方法存在需要完善的逻辑bug,解决方法:Clamp(float value,float a,float b){//将填入的a,b参数做对比,将较大值赋给max,较小值赋给min,其它照旧......}),但鉴于仅是思维冲突,实际可继续执行,所以此时value=-1.9f<min=0f,条件为真,则此时的value值为0,故图1-2中的第二条信息输出为0,其余Unity输出和教材处不同的数值同理。

以上就是标题所体现的全部内容,此外Mathf.PingPong()方法由于也涉及到了Repeat方法,部分结果可能也与书中存在偏差,本篇文章为个人理解,和大家分享,仅供参考。希望能对遇到相同问题的朋友有所帮助,拜~

 

 

 

 

 

  • 5
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 在 Unity 中,可以使用 `Debug.Log` 函数来输出信息到控制台。例如: ``` Debug.Log("这是一条信息"); ``` 你也可以使用 `Debug.LogFormat` 函数来格式化输出,例如: ``` int x = 10; float y = 20.5f; Debug.LogFormat("x 的值是 {0}, y 的值是 {1}", x, y); ``` 输出的信息会在 Unity控制台中显示出来,你可以在 Unity 编辑器的菜单栏中选择 `Window > Console` 来打开控制台。 此外,你还可以使用 `Debug.LogWarning` 和 `Debug.LogError` 函数来输出警告信息和错误信息。这些信息会在控制台中以特殊颜色显示,方便你快速定位问题。 ### 回答2: 在Unity中,我们可以使用Debug类和控制台实用程序来输出信息到控制台。下面是一些在Unity输出信息到控制台方法: 1. 使用Debug类: Debug类是Unity自带的用于输出调试信息的类。可以使用Debug.Log()方法输出信息到控制台。例如,要输出一个字符串到控制台,可以使用以下代码: ``` Debug.Log("Hello, Unity!"); ``` 2. 使用控制台实用程序: 控制台实用程序是Unity的一个功能,可以通过在编辑器中打开一个控制台窗口来使用。在菜单栏中选择"Window -> General -> Console"即可打开控制台窗口。在控制台窗口中,你可以输入并输出信息。 3. 输出变量的值: 除了简单的打印信息外,还可以将变量的值输出控制台中。例如,要输出一个整数变量的值,可以使用以下代码: ``` int myVariable = 10; Debug.Log("myVariable的值是:" + myVariable); ``` 这将在控制台输出:"myVariable的值是:10"。 4. 使用条件输出: 有时,我们希望只在特定条件满足时才输出信息。我们可以使用条件判断语句和Debug类的条件输出方法来实现。例如,要在某个条件为真时输出信息,可以使用以下代码: ``` bool condition = true; if (condition) { Debug.Log("条件为真!"); } ``` 以上是在Unity输出信息到控制台的一些方法。通过使用Debug类和控制台实用程序,我们可以方便地在开发过程中输出调试信息,以帮助我们调试和分析程序的运行情况。 ### 回答3: 在Unity中,我们可以使用Debug类来在控制台输出信息。以下是一些常用的方法: 1. 使用Debug.Log()方法: 这是最简单的方法,可以在控制台输出我们希望显示的信息。例如: Debug.Log("Hello World!"); 2. 使用Debug.LogWarning()方法: 这个方法用于输出警告信息,可以在控制台以黄色显示。例如: Debug.LogWarning("Something went wrong!"); 3. 使用Debug.LogError()方法: 这个方法用于输出错误信息,可以在控制台以红色显示。例如: Debug.LogError("An error occurred!"); 4. 输出变量的值: 我们可以使用Debug.Log()方法输出变量的值,以便调试程序。例如: int score = 100; Debug.Log("The score is: " + score); 5. 使用条件断言: 我们可以使用Debug.Assert()方法控制台输出信息,并在满足特定条件时暂停程序的执行。例如: int num = 10; Debug.Assert(num > 5, "The number is less than 5!"); 通过在代码中适当地添加这些输出语句,我们可以实时地在控制台查看程序的运行情况,方便调试和定位错误。这对于开发者来说非常重要,可以大大提高开发效率。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值