当前位置: 首页 > news >正文

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方法,部分结果可能也与书中存在偏差,本篇文章为个人理解,和大家分享,仅供参考。希望能对遇到相同问题的朋友有所帮助,拜~

 

 

 

 

 

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • Linux 基本指令讲解 上
  • 详解Redis 高可用的方式 Redis Cluster
  • 【Hugging Face】 Hugging Face 公司和 Hugging Face 网站介绍
  • C#中常用的扩展类
  • 行业大模型:信用评分大模型、生产优化大模型、库存管理大模型、物流行业大模型、零售行业大模型
  • 财务会计与管理会计(四)
  • 【C++ 面试 - 基础题】每日 3 题(十九)
  • 【AI】智力即服务
  • 【Redis集群】集群原理最全解析
  • C++——list列表容器经典案例——手机按销量降序排列,若销量相同则按价格降序排列
  • 从阻塞来聊聊mysql的 排他锁 共享锁 mvcc乐观锁;间隙锁;
  • 目标检测之数据增强
  • 探索Ubuntu网络监控:安装与使用流行工具的指南
  • 外部排序(败者树、置换-选择排序、最佳归并树)
  • Xilinx FPGA在线升级——汇总
  • CentOS7 安装JDK
  • CNN 在图像分割中的简史:从 R-CNN 到 Mask R-CNN
  • Git初体验
  • Java精华积累:初学者都应该搞懂的问题
  • Map集合、散列表、红黑树介绍
  • python3 使用 asyncio 代替线程
  • Vue2.x学习三:事件处理生命周期钩子
  • 阿里中间件开源组件:Sentinel 0.2.0正式发布
  • 从零搭建Koa2 Server
  • 分享自己折腾多时的一套 vue 组件 --we-vue
  • 如何借助 NoSQL 提高 JPA 应用性能
  • 深度学习入门:10门免费线上课程推荐
  • 腾讯优测优分享 | Android碎片化问题小结——关于闪光灯的那些事儿
  • 我建了一个叫Hello World的项目
  • 在GitHub多个账号上使用不同的SSH的配置方法
  • puppet连载22:define用法
  • 曾刷新两项世界纪录,腾讯优图人脸检测算法 DSFD 正式开源 ...
  • # Java NIO(一)FileChannel
  • # 安徽锐锋科技IDMS系统简介
  • # 利刃出鞘_Tomcat 核心原理解析(七)
  • #14vue3生成表单并跳转到外部地址的方式
  • (delphi11最新学习资料) Object Pascal 学习笔记---第5章第5节(delphi中的指针)
  • (LeetCode C++)盛最多水的容器
  • (三)Honghu Cloud云架构一定时调度平台
  • (深度全面解析)ChatGPT的重大更新给创业者带来了哪些红利机会
  • (十)T检验-第一部分
  • (四)activit5.23.0修复跟踪高亮显示BUG
  • (一)【Jmeter】JDK及Jmeter的安装部署及简单配置
  • (转)从零实现3D图像引擎:(8)参数化直线与3D平面函数库
  • (转载)Google Chrome调试JS
  • ****Linux下Mysql的安装和配置
  • ***检测工具之RKHunter AIDE
  • ..回顾17,展望18
  • .net dataexcel 脚本公式 函数源码
  • .NET3.5下用Lambda简化跨线程访问窗体控件,避免繁复的delegate,Invoke(转)
  • .NET开源的一个小而快并且功能强大的 Windows 动态桌面软件 - DreamScene2
  • .ui文件相关
  • /etc/motd and /etc/issue
  • @private @protected @public
  • [ A*实现 ] C++,矩阵地图