Unity官方案例——Roll a ball

Unity 3D 学习(一)——Roll a ball 今天含泪开一个新坑——Unity 3D。由于导师调整任务,最近要和师兄一起搭建3D虚拟仿真平台,特此学习。ROS也会继续学习下去,希望能够兼容到一起。Let’s get it ! Unity 3D 界面设置与介绍 目前使用的版本是:Unity 2020.3.25 ... 阅读详情

诶呀,图片加载出了点问题!
现在的我还是一名 Unity3d 游戏开发初学者,所以现在都在围绕 Unity3d 的官方案例来做练习,为此写下一些文章作为笔记,文章中难免会有一些疏漏,有些不当之处还望指正。

项目简介

首先玩家可以控制一个小球,去吃那些悬浮在平面上的小方块,全部吃玩就游戏结束了,是一个很简单的小游戏。

创建工程

首先我们创建一个空的工程

诶呀,图片加载出了点问题!

环境搭建

创建地面

在 Hierarchy 界面中右键选择 3D Object 中的 Plane 创建一个地面,其中将他 Inspector 界面中的 Scale(X:2,Y:1,Z:2)使地面扩大一下,这里需要让大家养成一个好的习惯就是物体的需要命名并且要有意义,所以我将我们的 Plan物体名改为 Ground。

诶呀,图片加载出了点问题!

给地面添加材质

但由于这地面太白了,再加上默认的灯光效果很亮表现得很刺眼,所以我给地面添加了一个黑色的材质,这里有需要大家养成一个文件分类的好习惯,所以我在我们的 Assets 文件夹中新建了一个 Materials 文件夹用来存放我们需要用到的材质文件,选中 Materials 文件夹后右键选择 Create 选项中选择 Material 就可以创建一个材质文件了,我将它改名为 Ground,其中在他的 Inspector 界面中将 Main Maps 中的 Albedo 的颜色调整为黑色,最后只需将这个材质文件拖到我们场景中的地面上即可。

诶呀,图片加载出了点问题!

添加墙

在 Hierarchy 界面中右键选择 3D Object 中的 Cube 来创建四周的墙,其中在它们的 Inspector 界面中都设置 Scale(X:21,Y:1,Z:1),它们的位置分别设置为

Wall[Positon(X:0,Y:0,Z:10)],

Wall1[Positon(X:0,Y:0,Z:-10)],

Wall2[Position(X:10,Y:0,Z:0),Rotation(X:0,Y:90,Z:0)],

Wall3[Position(X:-10,Y:0,Z:0),Rotation(X:0,Y:90,Z:0)]

这里又有一点需要大家养成的习惯就是若有相同的物体应该创建一个空的物体将他们都存放在你里面,所以我在 Hierarchy 中创建了一个空的物体改名为 Walls 将这四个墙存放在其中。

诶呀,图片加载出了点问题!

设置摄像机

选择我们场景中的 Main Camera 设置它的 Position(X:0,Y:10,Z:-10),Rotation(X:45,Y:0,Z:0)即可。

诶呀,图片加载出了点问题!

添加 Player

在 Hierarchy 界面中右键选择 3D Object 中选择 Sphere 将它改名为 Player,设置它的 Position(X:0,Y:0.5,Z:0)

诶呀,图片加载出了点问题!

添加 Pick Up

在 Hierarchy 界面中右键选择 3D Object 中选择 Cube 将他改名为 Pickup ,其中几个比较关键的设置是 Position 的y的值最好要大于1因为过低 他会卡在地面里,Rotation(X:45,Y:45,Z:45),还有一个特别关键的就是将 Box Collider 中的 Is Trigger 勾上,它的作用是做触发器,简单来说就是就是当两个物体发生碰撞不产生碰撞效果,但会触发碰撞事件(如果还不能理解,自己在 Unity 中实验一下),然后就是多创建几个 Pick Up 位置你们随便放,不过这里也有一个方法方便我们创建多个相同的物体并且还可以同步之后需要更改的设置,那就是创建 Prefab。我们在 Assets 文件夹中创建一个 Prefabs 文件夹,将我们创建的 Pickup物体拖至此文件夹,当我们看到 Pickup 物体的名称变蓝后,这就意味着我们的 prefab 创建完成,当我们需要创建 Pickup 物体时,现在只需将 prefab 中的 Pickup 拖至我们的场景中即可创建,然后就是创建一个空的物体改名为 Pickups 用来存放我们创建的 Pickup 。

诶呀,图片加载出了点问题!

在 Inspector 界面中找到 Tag 选项后单机再选择选项中最下方的 Add Tag… 后会来到我们的 Tags & Layers 界面,在下方会看见一个 + 标志后单机在输入框中输入 PickUp 后选择 Save 后即可添加标签

诶呀,图片加载出了点问题!

添加 UI

在 Hierarchy 界面中右键选择 UI 后再选择 Text 选项就可以添加我们的 UI 了,我们将创建出来的 Text 文件改名为 CountText,我们可以在 Inspector 界面中的 Text(Script) 中调整文字内容、字体、字体大小、颜色等多种属性,我们必须要做的是将文本默认的内容给删掉就行了,其他的设置看自己喜好了,但我们要将它至于界面的左上角该如何操作呢?我们可以在 Rect Transform 中看到一个田字格,我们单机一下它就会出现很多位置选项,但是并没有我们所需要的左上角,这时候我们只需要一直按住键盘上的 Alt 键就会发现上面的位置选项发生了变化,之后就可以很明显的看到左上角的选项然后我们选择它就可以了,然后在 Canvas 文件夹下在创建一个 Text 改名为 WinText 用来存储我们的胜利文本的,也要将文本内容删去,位置居中默认就行了,其他设置自定义。

诶呀,图片加载出了点问题!

游戏运行

从这儿起就要开始我们的脚本编写了,现在 Unity3D 主流脚本编辑语言是 C#,不过像我现在用的 Unity 3D 2018.2的版本脚本语言只剩下了 C#,所以推荐大家写脚本还是用 C# 来编写,学过的朋友理解起来就很方便了,没学过的朋友可以从网上找找相关教学视频了解一下,不过有一点编程经验的其实理解起来还是很简单的,我会在下面脚本中写下相应注释的,方便一些初学者理解的。

Unity官方有一个脚本文档,在遇到什么不懂得问题或者需要完成什么操作脚本忘了怎么写时可以进行查阅。

Unity官方脚本文档

Player 的移动

选择我们的 Player 物体文件,在 Inspector 的下方点击 Add Component 在其中的输入框中输入 Rigidbody 回车确定选择,即可给我们的 Player物体添加刚体组件,刚体组件的用处就是给物体添加物理属性的,其中我们将 Angular Drag 的值改为0,意思是取消小球的摩擦力。

诶呀,图片加载出了点问题!

还是点击 Add Component 在输入框中输入 PlayerController 选择 New script 再点击下方的 Create and Add 即可给我们的 Player 挂载脚本了,然后我在

Unity官方案例进阶--Roll a ball 简介 经过上一次的学习,我又想改进一下这款 Roll a ball 游戏,首先这款游戏只有胜利没有失败,所以我想定义一个条件来控制它的输赢,因此我想到了如下的方案: * 使我们的玩家控制 Player 在规定时间内达到一定的分数就胜利,反之则失败 * 任务目标 这里只是大概的目标内容,还有一些细节会在后面完成的时候体现出来。 完成 PickUp 的随机刷新出现,每隔3秒刷新一个 做... 阅读详情

相关推荐

Unity Roll-a-Ball深度解析:从物理引擎到脚本优化的核心避坑指南

在Unity游戏开发中,物理引擎是实现真实交互体验的核心技术。其原理是通过Rigidbody组件和物理系统,模拟力、碰撞与运动规律,而非直接操控Transform。这种物理驱动的价值在于能自动处理碰撞检测、提供真实运动感,并优化性能,广泛应用于角色控制、物体交互等场景。本文以经典案例Roll-a-Ball为切入点,深入剖析物理驱动与变换驱动的本质区别,并详解组件化架构的设计思想。通过对比ForceMode的不同选择,以及Update与FixedUpdate的合理使用,揭示如何避免新手常见的性能陷阱与逻辑误区

weixin_31881651的博客 292

Unity官方教程Roll-a-ball (一)

这是一个官方的教程,附上地址http://unity3d.com/cn/learn/tutorials/projects/roll-a-ball/set-up,因为是youtube的,怕有些人看不了,所以自己做一遍,并记录下过程。对象是beginer,刚开始一看,就是控制一个球,去吃周围的正方体,一想可能也就是很简单的,但是就是简单,也有可能补充到你不了解的方面,比如灯光的设置,所以还是准备把它写

破晓的专栏 4710

Unity 3D 官方教程—— Roll A Ball 学习记录

unity 官方教程 roll a ball 学习笔记。   1. 新创建一个项目   2. 养成良好的习惯,第一步就是保存场景。   先在右下方的 “project” 选项卡下点 “create”,选择 “Folder” 重命名为 “_Scenes” 来容纳我们的场景。 之后在左上角的 “File” 里选择 “Save Scenes” 或者直接快捷键 “Ctrl + S” ...

2484

Unity官方实例教程 Roll-a-Ball

一、添加游戏对象——平台(Plane) 第1种:通过菜单GameObject->3D Object->Plane来创建,如下图:     第2种:通过Hierarchy窗口中Create按钮来创建,如下图:   第3种:通过右键菜单创建,我们在Hierarchy窗口中单击右键会弹出菜单,如下图: 二、添加我们的主角——球体(Sp...

tsundere的博客 1146

Unity官方教程《roll-a-ball》学习笔记

第一次接触unity项目,学习了unity官方教程roll-a-ball。接下来是我的整个学习过程1.项目预览     项目学习的过程分为了这样几个步骤:      1.项目简介。      2.环境和小球      3.相机视角和游戏区域      4.收集功能,滚动和创建游戏第一个部分是介绍了整个游戏的玩法,如题所说的,滚动小球,然后触碰消掉方块,所有方块都被消除完毕后,游戏结束。第二部分介绍...

qq_33316262的博客 7146

制作一个基于Unity3D的Roll-a-ball滚动小游戏教程

选择"GameObject" -> “3D Object” -> “Sphere”,创建一个球体作为玩家控制的对象。在本教程中,我们将从零开始制作一个简单的Roll-a-ball滚动小游戏,让玩家控制球体收集场景中的物体。然后,创建一个新的场景并将其命名为"Roll-a-ball"。创建一个新的C#脚本并将其命名为"PlayerController"。将"PlayerController"脚本拖拽到球体对象上,将脚本附加到球体上。将"Pickup"脚本拖拽到收集物体上,将脚本附加到所有的收集物体上。

DllCoding的博客 1135

【unity实践demo】unity-2D游戏官方案例-

#实战基础

秩沅 2112

融合ZILN损失与深度学习的LTV预测:从概率分布到精准营销决策

本文探讨了融合ZILN损失与深度学习的LTV预测方法,通过深度概率模型精准预测用户生命周期价值(LTV),优化营销决策。文章详细解析了ZILN损失函数的优势、模型架构设计要点及工程化落地实践,帮助企业在预算分配、用户分层等场景实现数据驱动的精准营销。

weixin_29093169的博客 308

Qwen-Image-2.1本地图像生成整合包:8G显存一键部署指南

文生图模型是AI视觉创作的核心技术,其本地化部署需兼顾模型能力、硬件适配与工程易用性。Qwen-Image-2.1作为支持文本生成、图像编辑与多图参考的统一架构模型,突破了传统Diffusion模型在消费级显卡上的运行瓶颈。通过AWQ量化、vLLM推理优化与ComfyUI节点重构,实现8G显存稳定运行,显著降低CUDA环境配置复杂度。该方案面向设计师、教师与普通用户,提供开箱即用的本地AI图像工作流,适用于电商主图迭代、教学配图生成与IP角色延展等真实场景,让高质量图像生成真正走出云端,落地桌面。

weixin_29082143的博客 401

Ubuntu 24.04.3 LTS 安装 OpenClaw 图文版

OpenClow安装指南

qq_17204557的博客 2554

RC正弦波振荡电路实验全解析:如何通过调节电容电阻改变输出频率

本文深入解析RC正弦波振荡电路,重点阐述如何通过调节电容和电阻来精确改变输出频率。文章从文氏桥振荡电路的核心原理出发,详细介绍了电容粗调频段与电阻微调频率的实操策略,并分析了元件误差、寄生参数等对实测频率的影响,为电路设计与调试提供了从理论到实践的完整指南。

yhn456789的博客 1115

差分信号_差分信号的原理及其在PCB的设计

差分线是 PCB 设计中非常重要的一部分信号线,信号处理要求也是相当严谨,今天为大家介绍下差分信号的原理以及其在 PCB 设计中的处理方法。 什么是差分信号 差分传输是一种信号传输的技术,区别于传统的一根信号线一根地线的做法,差分传输在这两根线上都传输信号,这两个信号的振幅相等,相位相差 180 度,极性相反。在这两根线上传输的信号就是差分...

weixin_31849185的博客 1812

GD32_ADC采样+DMA多通道扫描传输

所使用的MCU 片上集成了 12 位逐次逼近式模数转换器模块(ADC),可以采样来自于 16 个外部通道和 2 个内部通道上的模拟信号。这 18 个 ADC 采样通道都支持多种运行模式,采样转换后,转换结果可以按照最低有效位对齐或最高有效位对齐的方式保存在相应的数据寄存器中。我们主要介绍其多通道扫描转换和DMA传输功能,在多个通道轮询采集ad数据,并使用DMA分别保存各个数据值,其能大大提高ADC的工作效率。以下为ADC 模块框图:

Yin_w的博客 8162

【YOLOv12多模态融合改进】| TFAM:时序融合注意力模块 | 引入通道 - 空间双分支注意力机制,解决双模态特征融合中时序关联不足的问题

TFAM模块通过时序信息驱动的注意力机制,解决了双时相特征融合中时序关联不足的问题,实现了更精准的变化区域定位和特征表示。其结构轻量、泛化性强,为变化检测任务提供了一种高效的特征融合解决方案。

Limiiiing的博客 868

以阿克曼转向车为例对URDF和XACRO文件进行解读

   最近我在古月学院购买了在Gazebo中实现阿克曼转向车的仿真课程,课程资料的阿克曼小车的XACRO文件在Gazebo里加载的时候报了三个错误,在这之前,我没接触过URDF或XACRO文件,本篇文章就以这个阿克曼小车的XACRO文件为例,对URDF或XACRO文件的格式和内容进行解读,期望经过解读和学习,找到错误原因及所在,并解决这三个错误    先来放一下上面右图所示的模型的完整的XACRO文件: <?xml version="1.0"?> <!-- racecar.urdf.x

慕羽★的博客 3702

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

下一篇: Markdown的入门上手指南
NoahCode
博客等级 码龄9年 24粉丝 12原创
评论 3
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值