Unity基本操作以及Roll A Ball窗口界面以及菜单Roll A Ball

窗口界面以及菜单

Scene

场景编辑窗口,用于对场景的设计以及物体的处理。

可以自由的漫游整个场景,拖动物体等等。

第一个手部图标,可以拖动物体,对准物体点击就可以拖动。第二个就是指针图标,可以选择物体的移动方向。可以选择x,y,z三个方向进行移动。第三个就是旋转图标,可以对物体进行任意方向的旋转。第四个可以改变物体的大小。 这个时候按住鼠标右键可以对场景查看,全景查看。按下w,s可以对镜头远近调节,a,d可以左右位移,如果仅仅是鼠标左右移动那就仅仅只能旋转而已。

Game

游戏运行窗口。

可以理解成玩家将要看到的画面。

第一个开始,就是游戏开始的意思,运行游戏之后玩家看到的画面,第二个就是游戏暂停,最后一个可以得到游戏下一帧所有出现的画面。如果点击了运行按钮,在运行的时候对场景进行了修改,那么所做的修改不会保存,等到点击停止恢复原样。

在game窗口还有几个显示比例的问题,现在使用的这个是全屏显示,Free Aspect;最后一个standalone就是发布之后的显示大小。右边还有一些小的按钮:

Maximize On Play,下次游戏的的时候全屏播放。stats是否显示游戏运行时的各种参数,Gizmos显示的就是运行游戏的时候是否要显示各种标记,光源或者是粒子标记等等。

Hierarchy

场景物体,列表窗口。

在unity里面列表里面所有的场景都会以列表的形式展示在Hierarchy里面。双击就可以定位到物体处。同时也可以搜索,没有搜索到,不匹配的物体都会是灰色,匹配到的才会是彩色。

Project

项目资源,列表窗口。

游戏的资源都会显示在ASssets里面,和window的文件系统的一样的,但是unity会自动生成每一个文件的mets的后缀文件,如果想要移动资源,那就需要在unity里面移动,这条mets文件才会跟随移动,上方的Favorites可以选择特定物体。

Inspector

属性编辑,列表窗口。

点击每一个物体都会有对应的属性,比如transform就保存了位置信息。

File菜单

新建场景,打开场景,保存另存为场景,新建项目,打开项目,设置属性等等。Build Setting就是发布设置,可以选择发布平台等等。

点击Player Setting就是到对于一些平台属性的修改。

这里主要对PC,max,linux做讲解。首先Resolution and Presentation,手否是全屏播放,是否使用计算机的分辨率,Mac的支持以及是否后台运行。后台运行的意思并不是缩小就关闭,而是只要焦点不再这个游戏上,这个游戏就会停止。剩下的一些Icon游戏图标的更改,

Edit编辑菜单

undo,copy,paste这些操作都比较常规,来看看preferences。

这个主要就是对于unity的偏爱设置了。总体设置,包括主题色调,但是主题色调需要pro版,也就是付费版才可以改。Project Settiing里面有一个input选项,对于游戏输入的控制,纵向横向的输入等等。Horizontal横向,Vertical纵向。Edit本来还有一个Rendering Setting,但是2018.2移动到了window里面,window->Rendering->Light Setting->scene。

在里面的other setting里面有一个Fog选项,就是雾化相果,也就是距离越远就越看不清楚,如果没有雾化那么距离和是否看清楚是没有关系的了,无论多远都可以看的清楚。最后还有一个snap setting,当我们要移动一个物体时,移动的距离就是使用snap setting里面的步长,相当于设计了一个基础的移动步长。 File是对于整个项目的打包发布等等的设置,而Edit是对编辑器的一些设置,而下面要提到的Assert是对项目资源的一些管理。

Assert菜单

首先下拉第一个create:

添加文件,添加脚本,添加材质资源,添加动画,以及GUI和字体等等。

GameObject菜单

这个菜单就是对Hierarchy的管理了。选中一个物体,点击move to view就可以直接跳到当前物体,也就是camera会到这个物体的正前方。gameobject游戏物体,场景中所有的东西都是游戏物体,包括了游戏场景,都是物体。

坐标系

常规下坐标系一般是xyz轴:

比如现在有两个物体:

两个cube大小比例都是1,而且这两个cude都是在同一层级,坐标系是世界坐标系。如果是层级不一样:

把物体拖上去之后位置没有变化,但是相对的坐标系改变了。

ng

cube(1)的坐标系还是一样不变,cube这个时候的坐标系就是以cube(1)的坐标系为准了,就是相对于世界坐标系再减去相对父类坐标系的值,0-1就是-1。

Roll A Ball

游戏环境

首先是创建工程,unity5一开始就自带了一个默认场景,上面提到了,所有的资源包括了场景物体等等都是保存在了Assert这个资源下。首先是创建一个游戏环境,直接搭就好了,创建五个cube,按照比例拉长排列就好,为了管理方便,最后·把他们放在ground下面统一管理。

物体创建

添加一个球体然后调一下大小即可。

地板的颜色改一下材质即可。既然是游戏中的小球,首先就要有物理属性了,比如反弹重量等等,这些就是刚体组件。在小球的右下方有一个Add component可以添加rigidbody,如果没有添加刚体组件,那么运行游戏后是静止的,添加刚体可以使得物体有物理属性。

添加脚本

添加脚本这个操作很简单。要做的处理是,首先需要得到这个组件的刚体,然后控制上下移动。初始化的C#脚本是这样的:

start用来放初始化的代码,update放指令操作。start只会一次调用,update会持续调用多次。获得刚体组件:

首先定义一个刚体的属性,然后初始化的时候就获取当前脚本所作用物体的刚体属性。刚体组件有一个方法,AddForce,可以添加一个力:

由于是三维,那么自然是三维向量了,所以是vecter3,给个水平x轴的力,点击运行,小球就会一直往前走。

如果想通过键盘移动,可以使用Input这个类。

用h获得水平的坐标,获得水平的力,如果是按下A或者是左键,那么就是0到-1,如果是D或者右建,就是0到1了,所以直接换即可。上下移动也一样,替换成Vertical即可。

力的大小自己加。

相机跟随

完成了移动,那么就还有相机跟随了,很明显,现在这个相机视角,我不服。首先在scene找到一个比较好的视野,然后点击GameObject-Align with view把相机定位到当前视野,之后就用代码来调整了。相机同步无非就是相机和物体的偏移量不变而已,也就是相机和物体的相对位置保持不变。

首先定义一个Transform的变量,用来存储小球的位移信息,由于是public变量,可以直接可视化的把小球的transform直接拖过来就好了。start先得到偏移量,然后update进行同步过程即可。

控制移动范围

加四个小墙就好了。

添加食物

首先创建一个小正方形,然后把它放到Assert一个文件夹下,也就是把它做成一个预制体,通俗点说就是模型,往后只要是从这个模型赋值出来的物体,那么只要模型改变,全部都会变。使得食物旋转,一样的现在模型上创建脚本,如果是一个一个改那很麻烦,所以模型上改,transform有一个rotate方法。

update方法一秒大概调用60次。

碰撞检测

如果移动小球,那么如果碰到了食物是会被挡住的。首先就是碰撞检测的问题,unity的API已经给出了碰撞的函数,朱啊哟讨论的有两种,一种是直接的碰撞检测,

按照API把代码写好:

效果是达到了,但是碰撞的时候回产生一定的震动,这不是我们想要的。这个时候就要改成触发震动了。首先要把被碰撞体的is Trriget勾上:

这样碰撞的时候回穿过而不会碰撞。上面的collision就是一些碰撞信息,碰撞的物体,坐标都可以得到。然后就是改成触发检测:

分数啊什么的很简单。

显示分数以及胜利

在右键UI添加text,然后再player脚本里面获得者两个对象,由于胜利了这个是要最后赢了才全部出现,所以需要先取消激活,也就是不勾上右上角:

代码激活,上面写了,setActive即可。前面的风格和后面的风格差异有点大,一个是2018一个是5.5,因为5.5不能用GitHub for unity,所以把5.5的版本移植到2018再提交到GitHub,emmm。

GitHub

最后附上GitHub代码:https://github.com/GreenArrow2017/Roll-A-Ball

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏企鹅号快讯

如何使用EndNote Match

貌似大家差不多都逃不出脱单、六级、雅思、SCI、考研、考博...的魔咒 那小博只好准备一篇 如何使用EndNote Match教程给你们祝早日出刊(笔芯~) 第...

28190
来自专栏云时之间

机器学习资料合计(一)

最近在群里发现一些小伙伴在寻找资料的时候总是无处可找,网上出现很多收集免费资料再去打包收钱的人,我看不惯这样的人,所以把自己收集的文件分享给大家。百度云经常抽风...

39680
来自专栏数据小魔方

Xcelsius(水晶易表)系列9——动态选择器应用(过滤器)

今天继续跟大家分享关于水晶易表的动态选择器高级用法——过滤器。 这个部件可以将多层帅选筛选自动化,比如我们前两篇所讲解的多重筛选案例中, 需要为每一个筛选字段单...

35260
来自专栏吉浦迅科技

NVIDIA®Jetson嵌入式平台开发工具JetPack 3.0正式发布

JetPack(Jetson SDK)是一个按需的一体化软件包,捆绑了NVIDIA®Jetson嵌入式平台的开发人员软件。JetPack 3.0包括对Jetso...

40290
来自专栏机器之心

教程 | 如何使用Swift在iOS 11中加入原生机器学习视觉模型

选自Hackernoon 机器之心编译 作者:Alex Wulff 参与:侯韵楚、李泽南 随着 WWDC 大会上 iOS 11 的发布,苹果终于推出了原生机器学...

32350
来自专栏机器之心

资源 | 让你事半功倍的小众Python库

提取数据,特别是从网络中提取数据是数据科学家的重要任务之一。Wget 是一个免费的工具,用于以非交互式方式从 Web 上下载文件。它支持 HTTP、HTTPS ...

15830
来自专栏肖洒的博客

基于Python的微信好友分析

“如果我比别人看得远,那是因为我站在巨人的肩膀上”–不知道牛顿说了没 本文利用Python3的itchat包简单的分析了一下自己的微信好友。

61420
来自专栏CDA数据分析师

如何在Python中用Bokeh实现交互式数据可视化?

引言 最近,我一直在看美国德克萨斯州奥斯汀举办的SciPy 2015会议上的一段视频——“用Blaze和Bokeh创建Python数据应用程序”,并且情不自禁地...

39870
来自专栏SAP最佳业务实践

从SAP最佳业务实践看企业管理(140)-库存进出策略

如何实现先进先出? 按照批次管理对仓库物料实施管理即可。即明确批次管理标准,入库产品按规定给其相应批次标识,并按照物料类别、批次号分层或分区存放,发料时,严格按...

32840
来自专栏陈满iOS

看图学算法(二)数据结构基本概念篇

过了一个星期,笔者花了整整几天时间学习的整理,下面是第二篇即数据结构基本概念篇。很辛苦,希望会对大家有一点帮助。另外,本文系列第一篇在这里:看图学算法(一)算法...

13050

扫码关注云+社区

领取腾讯云代金券