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

Day1 3D的方块翻滚

是初学者的一些尝试。

开始信心满满的学习UNITY了!先把准备工作准备好,专门分个磁盘出来做Unity。

第一步就中道崩殂了······E盘为什么说有不可移动的东西?碎片整理也不行,算了干脆卸了重装吧,就当清理内存了。

怎么搞了一整个上午。

吃完午饭磁盘也搞好了,开始下载吧。还分国内版和国外版啊,真好,不用自己找镜像了。

编辑器推荐的是VS,没怎么用过,IDEA用的比较多。

都下好了。太棒了,可以迈出第一步了。

中文社区还有教程哇,好贴心。

时间好长啊,还是先自己摸索摸索吧。

嗯,学会了建地面和模型,AI给的代码也跑动了,但那个黑球为什么是材料?单纯的图标吗?

已经很晚了,明天再仔细研究研究代码吧。

using UnityEngine; public class PlayerMove : MonoBehaviour { public float moveSpeed = 5f; public float rollSpeed = 180f; // 翻滚速度(度数/秒),可在Inspector调整 private Rigidbody rb; private Quaternion targetRotation; // 目标旋转角度 void Start() { // 获取/自动添加刚体 rb = GetComponent<Rigidbody>(); if (rb == null) { rb = gameObject.AddComponent<Rigidbody>(); } rb.freezeRotation = false; // 取消旋转锁定(才能翻滚) rb.useGravity = true; rb.isKinematic = false; // 初始旋转为当前角度 targetRotation = transform.rotation; } void Update() { // 1. 基础移动逻辑 float h = Input.GetAxis("Horizontal"); // A/D 左右 float v = Input.GetAxis("Vertical"); // W/S 前后 Vector3 moveDir = Vector3.right * h + Vector3.forward * v; if (moveDir.magnitude > 1f) { moveDir.Normalize(); } // 应用移动 if (moveDir.magnitude > 0.1f) { rb.velocity = new Vector3(moveDir.x * moveSpeed, rb.velocity.y, moveDir.z * moveSpeed); // 2. 核心:计算翻滚旋转角度 // 向左/右移 → 绕Z轴翻滚;向前/后移 → 绕X轴翻滚 float rollX = -v * rollSpeed * Time.deltaTime; // 前后移 → X轴翻滚(W前滚,S后滚) float rollZ = h * rollSpeed * Time.deltaTime; // 左右移 → Z轴翻滚(A左滚,D右滚) // 累加旋转角度(基于本地坐标系) targetRotation *= Quaternion.Euler(rollX, 0, rollZ); // 平滑插值到目标旋转(避免翻滚太生硬) transform.rotation = Quaternion.Lerp(transform.rotation, targetRotation, 0.1f); } else { // 停止移动时,缓慢恢复到初始旋转(可选,根据需求保留) targetRotation = Quaternion.identity; // 恢复到无旋转状态 transform.rotation = Quaternion.Lerp(transform.rotation, targetRotation, 0.05f); // 停止移动时减速(可选) rb.velocity = Vector3.Lerp(rb.velocity, Vector3.zero, 0.1f); } } }
http://www.jsqmd.com/news/810558/

相关文章:

  • 从‘采样失败’到‘波形光滑’:单电阻FOC电流重构的全流程避坑指南
  • 技术会议价值挖掘:从ESC嵌入式会议看高ROI参会方法论
  • 【c++笔记】类和对象流食般投喂(上)
  • Beyond Compare 5密钥生成器技术架构与实现原理深入解析
  • 智能卫浴行业品牌升级咨询:以奇正沐古与恒洁卫浴为例 - 品牌速递
  • 动态标定自修正·跨镜ID恒定·轨迹时序无断链 技术专项解析
  • 利用Taotoken多模型聚合能力优化AI应用选型成本
  • 物联网操作系统Zephyr(蓝牙篇)之6.1 实战解析:Zephyr蓝牙协议栈的三种构建模式与应用选型
  • CodeBuddy 客户端 ECONNREFUSED 错误排查实录
  • NoFences:免费开源桌面分区工具,让Windows桌面告别混乱的终极解决方案
  • 用ccagents优雅管理Claude Code智能体:符号链接与声明式配置实战
  • CTF SHOW WEB入门79
  • 2026性价比高的插座品牌推荐及选购参考 - 品牌排行榜
  • Adobe-GenP 3.0:5分钟快速激活Adobe全家桶的终极指南
  • 2026年保姆级攻略:论文如何避开AI检测高风险坑,一次过审! - 降AI实验室
  • Cursor Free VIP:智能破解Cursor Pro限制的实用工具完全指南
  • ctfshow靶场SSRF部分——基础绕过到协议攻击解题思路与技巧(一)
  • 极域电子教室终极破解指南:如何简单快速解除课堂控制限制
  • 百度网盘SVIP破解终极指南:3步解锁macOS极速下载体验
  • 2026年高性价比插座品牌推荐与选购参考 - 品牌排行榜
  • 2026年正规实名认证脱单App行业选型指南:核心标准与主流平台分析 - 产业观察网
  • yolo瑞芯微rk4588部署 YOLOv8分割模型转换rknn工具使用指南(ONNX-_RKNN)
  • 对话一多就失忆?用LangGraph打造有状态Agent,状态持久化与人机协作全搞定
  • SMUDebugTool:AMD Ryzen处理器底层调试工具的技术实现与应用
  • 2026年财报投研分析助手哪个好?五大金融AI工具深度横评 - 品牌种草官
  • 2026年接口测试工具对比评测与选型指南
  • 深入探讨Node.js中的Buffer池机制
  • 136.YOLOv8 工程化落地实战|训练 + 评估 + TensorRT/ONNX 导出,完整代码可直接部署
  • 告别模拟器!在Windows上轻松安装安卓应用的秘密武器
  • 2026白墨烫画打印机品牌排行及行业应用解析 - 品牌排行榜