Unity3d--Space Shooter(官方教程)--学习感想

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Unity3d--Space Shooter(官方教程)--学习感想相关的知识,希望对你有一定的参考价值。

第一篇博客,记录一下最近正在学习的知识。

Unity3d刚刚开始学习,在官网找了一个项目教程,主要的目的还是为了对这款软件还有常用的知识进行一个大概的了解。

个人认为在学习一款新软件时,直接学习它的一个对应的小项目能够令人更快的熟悉该软件。废话不多说了,下面来记录一下Unity3d的基本使用方法以及在学习时遇到的一些问题。

Unity安装以及破解方法:http://blog.csdn.net/shiyulf/article/details/55666819

Space Shooter官方教程:http://edu.manew.com/course/3

 

本文的主要篇幅是依据官方教程里的内容书写。

首先当然是创建新项目了,这个就不多讲了。接下来就采用分条的方式来介绍整个项目的实现。

 


 

1.1  导入资源包

在官方网站或是软件状态栏的Window->Asset Store里面下载所需资源包。关键字搜索Space Shooter,选择Space Shooter tutorial下载,点击import。

技术分享

在导入资源包时,需注意将所有资源都勾选上。

 

1.2  保存当前场景

可通过Unity标题栏判断当前场景是否保存。

保存之前  技术分享显示为Untitled。

保存之后技术分享显示为当前unity名称,一般设置为Main.unity。

保存方法:选择File->Save Scene,此时会跳转出文件夹。在该文件夹Assets下创建新文件夹_Scenes用于保存当前场景,场景名设置为Main,点击保存。我们会看到Project面板的Assets文件夹中已经出现了你所创建的文件夹以及场景。

技术分享

 

1.3  设置发布平台

选择File->Build Settings会弹出平台选择面板。默认下是选择的是技术分享

需在其他平台发布,选择相应平台,然后下载相关文件安装即可。

例如,本例中设置的是WebGL。设置完成后标题栏显示为:技术分享

 

1.4  玩家设置

选择Edit->Project Settings->Player可进行Player Setting。

此时,在Inspector面板中,上半部是全局设定。下半部是针对不同平台的设定。

技术分享

而本项目中,我是直接在Game面板上设置画布大小。选择Game面板中的Free Aspect。里面有各种比例可供选择,也可自己设置画布大小保存。此项目需设置Width:600,Height:900。

 

1.5  主要对象(飞船)的设置

首先将Project面板中Models文件夹中的PlayShip模型拖拽到Hierarchy面板中,重命名其为Player。在Scene面板中,可观察此模型。

1.5.1  位置、角度、大小:

技术分享

点击Transform右侧的setting图标,选择reset使Player置于原点。

其中Position(x,y,z)表示模型在空间中位置坐标。Rotation(x,y,z)表示模型的空间角度。Scale(x,y,z)表示模型大小。

 

1.5.2  Meshs、Mesh Filter、Mesh Renderer

技术分享 

Meshs(网格): Meshes make up a large part of your 3D worlds. Aside from some Asset store plugins(插件), Unity does not include modelling tools. Unity does however have great interactivity(相互作用)   with most 3D modelling packages. Unity supports triangulated(三角形的) or Quadrangulated(四边形的) polygon(多边形) meshes. Nurbs, Nurms, Subdiv surfaces must be converted to polygons.

技术分享

Mesh Filter(过滤器): The Mesh Filter takes a mesh from your assets(资源) and passes it to the Mesh Renderer for rendering on the screen.

技术分享

Mesh Renderer(渲染器): The Mesh Renderer takes the geometry from the Mesh Filter and renders it at the position defined by the object’s Transform component(组件).

技术分享

Mesh Filter获取我们的模型,Mesh Renderer把它在场景中渲染。

 

1.5.3  Rigidbody(刚体)

Rigidbodies enable your GameObjects to act under the control of physics. The Rigidbody can receive forces(作用力) and torque(扭转力) to make your objects move in a realistic way. Any GameObject must contain a Rigidbody to be influenced by gravity, act under added forces via scripting(脚本), or interact with other objects through the NVIDIA PhysX physics engine.

给物体施加物理作用力、碰撞效果需添加"Rigidbody"组件。

点击Inspector面板最下面的Add Component按钮。选择Physics->Rigidbody。

技术分享

Mass:物体重量 (默认为Kg).

Drag:空气阻力

Angular Drag:旋转空气阻力。0表示当物体旋转时,你无法使它停止旋转。表示停止旋转。

Use Gravity:物体是否受重力作用。勾选表示受重力作用。

Is Kinematic(是否遵循动力学):勾选表示物体运动状态不受外力、碰撞和关节的影响。而只受到动画和附加在物体上脚本的影响。但该物体仍能改变其他物体运动状态。

 

1.5.4  碰撞检测

首先需要得到物体所占据的体积才能计算是否发生碰撞。利用Collider(碰撞器)组件。

点击Add Component。选择Physics->Capsul Collider(胶囊形碰撞器)里面还有很多其他原始的Collider。最为复杂的是Mesh Collider,它更精确,但运行时更加占用资源。

选择Mesh Collider时,默认状态下"Mesh"选项与"Mesh Filter"组件使用相同模型。但是,也可拖拽其他模型(简化之后的模型)到Mesh Collider的"Mesh"中去,此时相较于使用默认的模型,更加节省运行资源。

技术分享

技术分享

Is Trigger(触发器):勾选,此碰撞用于触发事件,并被物理引擎忽略。

 

1.5.5  给飞船添加喷火效果

技术分享

喷火效果是与飞船联系在一起的,因此需将它们绑定起来。

做法是将Perfabs->VFS->Engines下的engines_player拖拽到Hierarchy的Player中去。

技术分享

 


 

第一篇就写到这吧。

 

以上是关于Unity3d--Space Shooter(官方教程)--学习感想的主要内容,如果未能解决你的问题,请参考以下文章

Unity-2017.3官方实例教程Space-Shooter

Scorpio-CSharp——第一弹 Space Shooter

[UE4]创建Shooter基类,2种方法

DFS(连通块) ZOJ 2743 Bubble Shooter

Black Rock Shooter 题解

Windows下开源截屏工具软件Free Shooter