转载unity

原创

Unity基础知识汇总

2.Unity相关知识

2.1 Unity介绍

Unity成为一款可以轻松创建游戏和三维互动的开发工具,是一个专业跨平台游戏引擎

Unity操作快捷键

 

Ctrl

 

N

New Scene 新建场景

Ctrl

 

O

Open Scene 打开场景

Ctrl

 

S

Save Scene 保存

Ctrl

Shift

S

Save Scene as 保存场景为

Ctrl

Shift

B

Build Settings... 编译设置...

Ctrl

 

B

Build and run 编译并运行

Edit 编辑

Ctrl

 

Z

Undo 撤消

Ctrl

 

Y

Redo 重做

Ctrl

 

X

Cut 剪切

Ctrl

 

C

Copy 拷贝

Ctrl

 

V

Paste 粘贴

Ctrl

 

D

Duplicate 复制

Shift

 

Del

Delete 删除

 

 

F

Frame  selected 选择的帧

Ctrl

 

F

Find 查找

Ctrl

 

A

Select All 全选

Ctrl

 

P

Play 播放

Ctrl

Shift

P

Pause 暂停

Ctrl

Alt

P

Step 停止

 

2.2 脚本基础开发

Unity面向组件开发,游戏物体想要实现什么样的功能,只需要添加相对应的组件就可以了,此时会在属性面板上显示出来。可以像添加组件一样把脚本添加到游戏物体上。

脚本生命周期:

1.Awake

最早执行,在GameObejct对象的数据和状态的初始化后执行,只会触发一次。

tips:GameObject实例化到场景中后在激活的状态下才会初始化,如果GameObject从来未激活,它的脚本上的Awake永远不会被调用。

即时触发,GameObject第一次active的时候调用。

2.Start

在脚本第一次调用Update之前调用,只会触发一次。

3.OnEnable

在脚本状态由disabled变为enabled状态是触发一次,Unity内部可能将脚本初始置为diabled,所以如果我们实例化一个激活的GameObject,并且在挂上一个enabled了的脚本后把它加入场景会调用一次OnEnable,并且早于Start。

4.OnDisable

在脚本由enabled状态变为disabled状态的时候会调用。

tips:OnEnable和OnDisable事件的触发是即时的,并且这两个事件是综合考虑GameObject的active状态和脚本的enabled状态的。所以不要在OnEnable里面把脚本设置为disabled同时在OnDisable中把脚本设置为enabled,会导致死循环!!!

5.Update

在每一帧调用,用于实现各种行为逻辑

6.LateUpdate

在每一帧调用,但是是在Update之后触发。常用的一种情况是相机跟随移动角色:角色移动逻辑在Update里面实现,相机跟随逻辑在LateUpdate里面实现。

7.OnDestroy

在组件被销毁时调用,只有GameObject被激活过才会触发。

脚本常用类:

1.Component

2.GameObject

3.Transform

4. Vector3

1. Quaternion

Identity:该四元素无旋转。

LookRotation:创建一个旋转,沿着forward(Z轴)并且头部沿着Y轴的约束注释

2. Time

3. Mathf

预设体

组件的集合体 , 预制物体可以实例化成游戏对象.

创建预设体的作用: 可以重复的创建具有相同结构的游戏对象。

在脚本中,使用instantiate函数来进行预设体的实例化

Object tmpObj = Instantiate(prefabs, pos , Quaternion.identity);

 

 

2.3 物理引擎

1.键盘输入常用方法

GetKey:按键按下期间返回true

GetKeyDown:按键按下的第一帧返回true

GetKeyUp:按键松开的第一帧返回True

Input类简介

虚拟按键

具体代码和实现方式如下:

Float hor = Input.GetAxis(“Horizontal”);

鼠标事件

常用的鼠标属性和方法

 

碰撞器组件:

当我们在场景当中创建出来一个游戏物体的方式后,引擎会自动为这个游戏物体添加碰撞器组件,其主要功能是进行碰撞检测。

发生碰撞的条件:1、相对运动,2、两个碰撞器,2、一个刚体

 

刚体组件

刚体组件能受到你的作用,比如:重力,反作用力,阻力,外加力,爆炸力等等

以下是刚体组件的一些属性和常用方法

触发器:

发生触发的条件:1、两个碰撞器 2、一个触发器 3、一个刚体

 

射线

Unity提供了涉嫌集资:通过虚拟射线检测所碰撞到的物体

Ray ray = new Ray();

Bool Raycast(Ray ray,out RaycastHit hitInfo);

Rayray=Camera.main.ScreenPointToRay(Input.mousePostion);

从主摄像机到鼠标点击位置创建一条射线。

 

2.4 Unity2D和精灵

精灵:

图片精灵的意思(Flash引擎里也有图片精灵对象),将导入的图片类型设置为Sprite即可拖到场景面板里,带有随屏幕大小自动缩放功能,还可以加Collider进行射线检测,简单实用。图片精灵是用来绘制图集的控件,精灵可以在一张大图中去截取一部分(大图就是整体图像集合(Atlas),而截取的小图就是一个精灵),然后给精灵命名,使用时通过精灵的名称就能直接绘制,并且精灵还可以用来制作动画。

图层排序:2D游戏当中的图片之键没有深度关系,都处于同一个平面上,但在实际游戏当中需要为他们排序,按视觉上的空间先后顺序显示。

2D物理组件与3D物理引擎在功能上基本相似,当我们给精灵添加了个刚体之后,他就会受到2D物理引擎的控制。

2D碰撞和触发回调方法:

 

 

2D开发常用类:

创建序列帧动画,按Ctrl+F6打开Animation的编辑窗口,点击后可以添加属性,如果要更改动画中某一帧的位置、旋转和缩放,只需要点击+号即可,在Animation编辑窗口,在关键帧点击天津爱时间,此时可以选择脚本中的方法,但是该方法必须是public ,可访问状态

 

 

2.6 UGUI

UGUI的特点:灵活,快速和可视化,对于开发者而言,效率高,易于使用和扩展以及对Unity的兼容性高。

UGUI与GUI插件NGUI相比:

1. 由NGUI创始人参与开发

2. 与Unity结合更加密切

3. 自适应系统更加完善

4. 更方便的深度处理

5. 省去Altas,直接使用Sprite Pa

UGUI画布:是所有UI控件的根类,所有的UI控件补习都在画布上面。EventSystem是事件系统,负责监听用户的输入,创建UI控件是,当层级试图当中没有CANVAS和EventSystem,系统会帮我们自动创建。

画布的三种渲染模式模式:

1、Screen Space-Overlay:不需要UI摄像机,画布会一直出现在摄像机最前面

2、Screen Space-Camera:需要一个UICamera,支持U前方显示3D模型和粒子系统

3、World Space:UI控件成为3D场景中的一部分

LayoutGroup组件:对子控件进行布局,上面只能有一种布局组件,布局组件有以下三种:

1.Horizontal Layout Group (水平布局)

2.Ver tical Layout Group(垂直布局)

3.Grid Layout Group(网格布局)

1. UGUI画布也称为Canvas,UGUI是所有控件的父类

2. 所有UGUI控件都必须绘制在画布上面

3. 当创建UGUI控件工程当中没有Canvas的时候会自动创建

Canvas与EventSystem

Text控件是用来显示文本的文本控件

Text的属性可以在Inspector当中通过Text组件进行设置,也可以在代码当中进行动态设置。给Canvas挂载脚本UGUISetting

Image控件主要是用来显示图片,显示图片的格式是Sprite

当我们给Image选择一张贴图之后会出现ImageType选项,如下图所示。ImageType总共有四种选项:simple显示单个会拉伸;Tilled平铺显示,图片按照原始显示;Sliced按照九宫格显示,拉伸区域只会在九宫格中间;Filled填充显示,可以根据不同的填充方式模拟技能冷却的

按钮添加监听事件:

Button btn;

void Star t () {

//获取到按钮

btn = GameObject.Find(“Button”).GetComponent

0 个人打赏
文章最后发布于: 2018-05-12 17:02:37
        
展开阅读全文


	
  • 上一页
  • 1
  • 下一页

Unity基础知识篇(一):Unity编辑器问题汇总(持续更新)

02-28 阅读数 90

Unity基础自学问题汇总写在前面问题1:Unity在play模式下各种UI显示模糊的问题写在前面这段时间为了实现自己的梦想吧,开始自学Unity。前面学习了一段时间,将一些关键点和自己的理解都记录在... 博文 来自: Bia的博客

Unity入门:第一个游戏

02-02 阅读数 1万+

Unity官网提供了详尽的文档和丰富的教学视频,昨天跟着视频做了一个简单的3d游戏“roll-a-ball”。游戏涉及了许多Unity的基本知识,用来入门很不错。这篇博文并不讲述整个游戏的制作流程,如... 博文 来自: lishichengyan的博客

Unity基础知识结构总结

07-25 阅读数 3922

本篇以知识结构图的形式对Unity引擎的常用基础知识内容进行了总结和梳理。如果你学了一点关于Unity引擎的知识,又觉得太杂乱,那么希望本篇会给你一些帮助。对应引擎版本:Unity4.6.3(前方多大... 博文 来自: 杜子兮@莲兮奈若何

Unity3D】自学之路

07-09 阅读数 3万+

一、前言原文主要讲的是如何从零基础入门,然后一步一步进阶的文章,包括很多学习资料,学习的网址,研究方向等,内容还是比较全面的。大家多多支持一些克森大神,关注一下他的公众号。这篇文章就将原文的内容进行总... 博文 来自: 本人QQ764424567,有什么疑问可以加这个QQ,申请时请注明原因

Unity基础知识

05-29 阅读数 34

五大视图Scene:场景视图用来改变、添加物体和改变物体位置Game:游戏视图用来看效果和运行时操作的Hierarchy:层级视图用来创建物体,并依次罗列出来Project:工程视图用来存放这个工程中... 博文 来自: YJF19997的博客

Unity3d菜鸟入门的学习路线--笔记1

05-23 阅读数 8892

最近刚刚开始接触unity3d,因此想把自己的学习路线记录下来,方便自己以后总结。由于毕业论文的关系,需要使用Unity3D开发,做虚拟现实的应用,使用的设备是HTCvivepro产品。初始学习,由于... 博文 来自: weixin_41101885的博客

Unity 各个文件夹的作用

01-27 阅读数 970

Debug.Log(Application.platform);//打印现在使用的什么版本下的编译器platform版本编译器Application.runInBackground=true;//ru... 博文 来自: qq_33537945的博客

第一阶段unity基础

08-11 阅读数 663

第一阶段unity基础 博文 来自: Edward的博客

你可能感兴趣的:(转载,编程)