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

Unity 滚动球游戏(二)

一、项目回顾

在上篇文章中,已经完成了场景搭建,主要包括一个平面Plane,四个cube组成的围挡,并对摄像机的位置进行了设置,保证能够在游戏视图中完整显示场景。
具体可自行查阅:场景搭建
本篇将继续创建游戏物体,包括多个cube,并通过脚本实现游戏物体的旋转。

二、创建游戏物体

1.创建Cube对象,并设置其位置、大小、材质、摆放角度。


位置:设置位置坐标为(0,0,0),观察其位置,会发现有一半隐藏在平面Plane之下,此时需要调整Y轴方向,使其处于平面Plane之上,可以设置(0,0.5,0)。


大小:创建cube后,如果觉得大小不合适,可进一步调整Transform组件里的缩放属性,默认是(1,1,1),保持原样。小于1表示缩小,大于1表示放大,可以只在某个方向上进行缩放。
材质:与Plane一样,也可以为游戏物体创建材质,设置其颜色。
在Assets文件夹中,找到Materials文件夹,右键选择“创建”->“材质”,将其命名为“游戏物体材质”。随后,在右侧的检查器面板中设置其反射率属性。最后,将该材质拖拽或分配给Cube,即可在场景视图中看到效果。





摆放角度:摆放角度可以通过物体的旋转属性设置,分别设置每一个轴的旋转角度。这里设置(-35,0,45)。如果发现旋转之后部分进入Plane以下,可继续调整物体位置,可以尝试(0,0.8,0)。

2.依次复制多个,摆放在不同位置。

复制多个,分别放置不同位置,同样的,可以新建一个空对象,使所有的cube成为其子对象,方便管理。

设置游戏物体旋转角度时,需要确定旋转的轴或者中心点,这需要格外说明Unity提供的中心(center)和轴心(pivot)
轴心(pivot):模型的轴心,建立模型时候确定,可以在建模软件中更改;物体自身平移旋转时候围绕Pivot进行平移旋转的;
中心(center):unity计算mesh的中心得到的中心位置;可以计算一个物体,也可以计算多个物体打得的中心。选中多个物体则围绕整体center进行旋转。如选中多个物体同时旋转使用的就是中心(center)。

三、游戏物体旋转

1.新建脚本RotateControl.cs

依次Assets文件夹新建子文件夹Scripts,在其中新建脚本RotateControl.cs,并打开。

2.物体旋转编程控制

想要物体旋转,Unity提供了RotateAround(Vector3 point, Vector3 axis, float angle)方法,其实现的功能是使物体围绕穿过point点的axis轴旋转angle角度
如果放置在Update函数中,则表示每一次刷新都会执行此功能。

using System.Collections; using System.Collections.Generic; using UnityEngine; public class RotateControl : MonoBehaviour { public float speed; //设置旋转的速度,在Unity中初始化 void Start() { } // Update is called once per frame void Update() { //调用RotateAround()函数,参数分别为物体的位置坐标,Y轴,旋转的速度 transform.RotateAround(transform.position, Vector3.up, Time.deltaTime * speed); } }
Time.deltaTime含义: 官方手册中说明:这个变量是按秒为单位,完成上一帧所用的时间。 在设置旋转或移动速度的时候,乘以此值为为了保证不同刷新率下,游戏物体1秒变化的程度是一致的。 比如60Hz的话,1秒刷60帧,也就是Update运行了60次,那么deltaTime=1/60,那么物体1秒旋转的角度为1/60*speed*60=speed; 同理:0Hz的话,1秒刷60帧,也就是Update运行了60次,那么deltaTime=1/60,那么物体1秒旋转的角度为1/60*speed*60=speed;
3.放置脚本并设置speed初始值

4.保存并运行程序查看效果


如果效果不明显,可以设置speed更大的值,比如100。

http://www.zskr.cn/news/1464511.html

相关文章:

  • 实战派数据库解决方案,快马ai一键生成企业级管理应用,替代navicat
  • PPS文件怎么改内容?两种实用实操方法
  • Git开发必备技能:从单机笔记到多人协作的版本控制实战
  • JiYuTrainer技术实现:Windows教学管理系统行为调整工具的技术架构与应用指南
  • 抖音开放平台获取用户手机号,Java解密实战(附完整代码与避坑点)
  • 论文创新点怎么“创”?五大方法助你突破创新难关(附提示词)
  • 产教融合视域下 MITCON 网络安全培训项目实践与反钓鱼防御落地研究
  • 测试质量进阶个人笔记--7测试执行与缺陷管理
  • 2026年热门的一站式电商园区/小商品货源园区优选榜单 - 行业平台推荐
  • 避开Matlab机械臂仿真的那些坑:Robotic Toolbox建模与逆解算实战避坑指南
  • 【使用PyQt6与Matplotlib编写交互式生成一元二次函数图形程序】
  • ZYNQ7000 PS端IO不够用?试试用AXI GPIO在Vivado里扩展32个引脚(附完整SDK代码)
  • 从零搭建Python数据分析环境:手把手教你用Jupyter Notebook仪表盘管理你的第一个项目
  • 计算机毕业设计之基于Hive的电影推荐系统的设计与实现
  • 企业AI开发工具身份集成实践与安全架构设计
  • 2026年靠谱的九江工厂短视频拍摄/九江短视频/九江本地短视频线索投放热门公司推荐 - 行业平台推荐
  • 别再被CUDNN_STATUS_NOT_INITIALIZED搞懵了!手把手教你排查PyTorch+CUDA环境(附版本对照表)
  • 别再死记硬背了!用一张时序图彻底搞懂Setup和Hold的检查逻辑
  • 如何快速提取Wallpaper Engine资源:RePKG完整工具使用指南
  • PCRE2 10.36源码全集:含构建脚本、API手册、pcre2grep工具及跨平台编译支持
  • CodeRabbit 基于 Claude 构建的智能体编排系统
  • 2026年知名的内蒙古政府资金申报/内蒙古重点群体退税/内蒙古政府补贴申报/内蒙古残疾人招聘热门公司排行 - 行业平台推荐
  • 2026年推荐哈尔滨防火调节阀/黑龙江正压送风口优质公司推荐 - 品牌宣传支持者
  • 告别Keil MDK:在Win10上用VS Code + CMake + gcc-arm-none-eabi搭建STM32开发环境(保姆级避坑指南)
  • 数据科学7大沉默关卡:从问题定义到价值落地的实战校准
  • CARLA多机协同仿真环境:开箱即用的分布式自动驾驶测试平台
  • 5.1 | CSTR厌氧消化工艺详解:中温湿式发酵的设计与运行
  • 6款靠谱AI智能降重工具 改写实力出众
  • 从连线到导出:一文搞懂TwinCAT XML配置背后的EtherCAT网络初始化原理
  • 智能驾驶基石:EPB电子驻车系统深度解析