前言

目前Google官方推出的VR设备有DayDream(2016年推出)和Cardboard(2014年推出)两种。
  • Daydream是消费级VR解决方案,提供了手持遥控设备Controller,提高渲染效率,优化延迟。
  • Cardboard是体验级VR解决方案,属于入门级VR设备的首选,物美价廉。
本文针对的VR设备是Cardboard,Google为Cardboard提供的VR SDK主要有四种,分...点击进入阅读全文

粒子系统初始化模块
该模块始终存在,无法删除或禁用。
参数作用
持续时间 (Duration粒子系统 (Particle System) 发射粒子的持续时间。
循环 (Looping粒子系统 (Particle System) 是否循环。
预热 (Prewarm只可预热循环系统,这意味着,粒子系统 (Particle System) 在游戏一开始时就发射粒子,就像已发射了一个周期的粒子。
初始延迟 (Start Delay...
点击进入阅读全文

Auto Layout Syste

Auto Layout System 是基於Rect Transform Layout System 之上的系統,自動調整一個或多個的元素大小、位置、間格,又分為 Layout Controllers(父物件) 與 Layout Elements(子物件) 兩部分,一個簡單的 Auto Layout 架構如下 (此處介紹理論,實作留到後面)

AutoLayoutSystem_01

Layout Element (子物件)

代表著每個元素的大小,擁有資訊如下

Minimum Widt最小寬度
Minimum Heigh
Preferred Widt優先寬度
Preferred Heigh
Flexible Widt彈性寬度
Flexible Heigh

點選UI後,可以在 Inspector 最下方切換為 Layout Properti...

点击进入阅读全文

一、ImagSource Image(图像源):纹理格式为Sprite(2D and UI)的图片资源(导入图片后选择Texture Type为Sprite(2D and UI))。Color(颜色):图片叠加色。Material(材质):图片叠加材质。Raycast Target(射线投射目标):是否作为射线投射目标。Image Type(图片显示类型):Simple(基本的),图片整张全显示...点击进入阅读全文

在Unity中我们将2D图片导入进来的时候,会选择图片的保存格式,根据不同的格式在Unity中具有不同的用途。所以在我们导入图片之后都需要进行一些设置。Texture Type : 设置导入图片的使用途径通常我们在使用图片进行GUI或者2D精灵的使用时则选择Sprite选项。Sptrite Mode :设置图片的形式Single:在这种模式下将 sprite图像将被用于单独的一个【就是一张ima...点击进入阅读全文

一、基本要点

RectTransform继承于Transform,在 Transform 基础上,RectTransform 增加了 轴心(pivot)、锚点(anchors)、和 尺寸变化量(sizeDelta)。其中anchors和pivot都是坐标原点在左下角的0-1向量空间,0-1代表的是比例。anchors的向量空间是子UI相对父UI的比例位置,pivot的向量空间是相对UI本身的比例位置...点击进入阅读全文

一、Canvas简介

Canvas画布是承载所有UI元素的区域。Canvas实际上是一个游戏对象上绑定了Canvas组件。所有的UI元素都必须是Canvas的自对象。如果场景中没有画布,那么我们创建任何一个UI元素,都会自动创建画布,并且将新元素置于其下。

二、Canvas画布参数与应用

1.创建画布

当你创建任何一个UI元素的时候,都会自动创建画布。也可以主动创建一张画布:点击GameObject-&g...点击进入阅读全文

本节要点

1.协同程序简介1.什么是协同程序协同程序,简称“协程”。在脚本运行过程中,需要额外的执行一些其他的代码,这个时候就可以将“其他的代码”以协程的形式来运行。类似于开启了一个线程,但是协程不是线程。2.协同程序的使用前提只有在继承了“MonoBehaviour”这个类的子类中才能使用相关的协程方法。2.协同程序语法格式1.定义协同程序协同程序就是一个“代码片段”,往往我们需要将这个代码片段封装成一个方法,或者称之为函数。IEnumerator Task3(){yield return new WaitForSeconds (2); Debug.Log ("任务 3");}参数说明:IEnumerator:协同程序的返回值类型;yield return:协同程序返回 xxxxx;new WaitForSeconds (秒数):实例化一个对象,等待多少秒后继续执行。这个 Task3()的作用就是等待两秒后,继续执行任务 3.2.开启协同程序StartCoroutine(“协同程序方法名”);这个 StartCoroutine 有三种重载形式,目前先只介绍这一种。3.停止协同程序StopCoroutine(“协同程序方法名”);这个 StopCoroutine 也有三种重载形式,目前先只介绍这一种。

关键代码

CoroutinTes
public class CoroutinTest : MonoBehaviour {// Use this for initializationvoid Start () {//普通程序 从上往下执行;//Debug.Log("任务1");//Debug.Log("任务2");//Debug.Log("任务3");//Debug.Log("任务4");//协同程序Debug.Log("任务1");Debug.Log("任务2");//Task3();//不是这样调用协同程序的StartCoroutine("Task3");//开启协程;  跟之前线程不同的是 这是字符串的方法名Debug.Log("任务4");}IEnumerator Task3() {//要注意协同程序返回值类型//等待两秒后执行;yield return new WaitForSeconds(2);//协同程序返回值格式 yield returnDebug.Log("任务3");yield return new WaitForSeconds(2);//协同程序返回值格式 yield return,为了测试按下空格键后是否停止执行协程;Debug.Log("任务5");}// Update is called once per frame//通过按键停止协程的执行void Update(){if (Input.GetKeyDown(KeyCode.Space)){StopCoroutine("Task3");}}}

小结

点击进入阅读全文