这期笔记我们专注Unity提供的各种数学相关的类来学习。

时间Time

API文档地址:http://docs.unity3d.com/ScriptReference/Time.html

时间加/减速

Demo04是一个自由落体的弹性小球从天空落下的一个场景,用于测试下面的示例所用。

这个效果在游戏中也比较常用,比如在战斗游戏中,打败BOSS或我方死亡时都会呈现一种慢镜头的效果。

我们的脚本按下空格将会减速10倍的时间,脚本绑定在摄像机上,代码如下:

 using UnityEngine;
using System.Collections; public class Demo04Script : MonoBehaviour
{
void Start()
{
} void Update()
{
if (Input.GetKeyDown(KeyCode.A))
{
Time.timeScale = 0.1f;
Time.fixedDeltaTime = 0.002f;
}
if (Input.GetKeyUp(KeyCode.A))
{
Time.timeScale = 1.0f;
Time.fixedDeltaTime = 0.02f;
}
}
}

需要注意的是除了修改timeScale之外,还要修改物理运算的fixedDeltaTime,否则在物理模拟中会由于间隔过小导致出现跳帧的现象,大家可以注释掉fixedDeltaTime的代码运行查看。

随机数Random

API文档地址:http://docs.unity3d.com/ScriptReference/Random.html

随机数比较简单,就不过多讲解了。

数学运算Mathf

API文档地址:http://docs.unity3d.com/ScriptReference/Mathf.html

平滑过渡变色

Demo05是一个随机变换颜色的小盒子,用于测试下面的示例所用。

主要使用到了柏林噪音,具体的代码如下:

 using UnityEngine;
using System.Collections; public class Demo05Script : MonoBehaviour
{
public GameObject cube; private Material _material;
private Vector3 _colorSpace; void Start()
{
_material = cube.GetComponent<Renderer>().material; _colorSpace = new Vector3(
Random.Range(0f, 10f),
Random.Range(0f, 10f),
Random.Range(0f, 10f)
);
} void Update()
{
float r = Mathf.PerlinNoise(Time.time, _colorSpace.x);
float g = Mathf.PerlinNoise(Time.time, _colorSpace.y);
float b = Mathf.PerlinNoise(Time.time, _colorSpace.z); _material.color = new Color(r, g, b);
}
}

由于柏林噪音是一种平滑的随机形式,所以我们的颜色改变也是平滑过渡的,如果使用普通的随机数则达不到平滑过渡的效果。

工程文件下载

http://pan.baidu.com/s/1sjQJ5j3

Unity3D之空间转换学习笔记(二):基础数学的更多相关文章

  1. Unity3D之空间转换学习笔记(一):场景物体变换

    该系列笔记基于Unity3D 5.x的版本学习,部分API使用和4.x不一致. 目前在Unity3D中,除了新的UGUI部分控件外,所有的物体(GameObject)都必带有Transform组件,而 ...

  2. Unity3D之空间转换学习笔记(三):3D数学

    3D数学基础 向量 向量可以看做具有方向和大小的一条线段. 比如:我们如果用点A减去点B,则可以得到一个向量,该向量的方向为点B面向点A的方向,而大小为两点的距离.这个方法在游戏开发中经常用到,比如我 ...

  3. Java IO学习笔记二

    Java IO学习笔记二 流的概念 在程序中所有的数据都是以流的方式进行传输或保存的,程序需要数据的时候要使用输入流读取数据,而当程序需要将一些数据保存起来的时候,就要使用输出流完成. 程序中的输入输 ...

  4. Linux内核学习笔记二——进程

    Linux内核学习笔记二——进程   一 进程与线程 进程就是处于执行期的程序,包含了独立地址空间,多个执行线程等资源. 线程是进程中活动的对象,每个线程都拥有独立的程序计数器.进程栈和一组进程寄存器 ...

  5. [Firefly引擎][学习笔记二][已完结]卡牌游戏开发模型的设计

    源地址:http://bbs.9miao.com/thread-44603-1-1.html 在此补充一下Socket的验证机制:socket登陆验证.会采用session会话超时的机制做心跳接口验证 ...

  6. Redis学习笔记二 (BitMap算法分析与BitCount语法)

    Redis学习笔记二 一.BitMap是什么 就是通过一个bit位来表示某个元素对应的值或者状态,其中的key就是对应元素本身.我们知道8个bit可以组成一个Byte,所以bitmap本身会极大的节省 ...

  7. ES6学习笔记<二>arrow functions 箭头函数、template string、destructuring

    接着上一篇的说. arrow functions 箭头函数 => 更便捷的函数声明 document.getElementById("click_1").onclick = ...

  8. kvm虚拟化学习笔记(二)之linux kvm虚拟机安装

    KVM虚拟化学习笔记系列文章列表----------------------------------------kvm虚拟化学习笔记(一)之kvm虚拟化环境安装http://koumm.blog.51 ...

  9. Java IO学习笔记二:DirectByteBuffer与HeapByteBuffer

    作者:Grey 原文地址:Java IO学习笔记二:DirectByteBuffer与HeapByteBuffer ByteBuffer.allocate()与ByteBuffer.allocateD ...

随机推荐

  1. JS省队集训记

    不知不觉省队集训已经结束,离noi也越来越近了呢 论考前实战训练的重要性,让我随便总结一下这几天的考试 Day 1 T1 唉,感觉跟xj测试很像啊?meet in middle,不过这种题不多测是什么 ...

  2. UVa 11235 (RMQ) Frequent values

    范围最值问题,O(nlogn)的预处理,O(1)的查询. 这个题就是先对这些数列进行游程编码,重复的元素只记录下重复的次数. 对于所查询的[L, R]如果它完全覆盖了某些连续的重复片段,那么查询的就是 ...

  3. iDSDT搞定显卡和声卡 黑苹果不纠结

    原帖:http://www.lovelucy.info/idsdt-mac-video-audio-drive.html 之前写过PC机上装Mac OS X系统,准备工作中最纠结的就是驱动了.在网络上 ...

  4. sublime3 常用功能总结

    介绍几个常见的功能: l 自动完成:自动完成的快捷键是Tab和Enter,如果在html文件中,输入cl按下tab或Enter,即可自动补全为class=””:加上zencoding后,更是如虎添翼, ...

  5. Java [Leetcode 268]Missing Number

    题目描述: Given an array containing n distinct numbers taken from 0, 1, 2, ..., n, find the one that is ...

  6. oracle等待事件以及解决方案

    我们可以通过视图v$session_wait来查看系统当前的等待事件,以及与等待事件相对应的资源的相关信息,从而可确定出产生瓶颈的类型及其对象. v$session_wait的p1.p2.p3告诉我们 ...

  7. Oracle AWR报告自动生成并ftp脚本

    脚本主要由以下几个部分组成: awr.sql 用来在sqlplus 中执行的脚本,该脚本从网上直接找的. awr.sh 用来调用sqlplus来生成awr报告. ftp.sh 用来打包压缩每天生成的a ...

  8. 【转】移动web资源整理

    目录(更新于20150311) meta基础知识 H5页面窗口自动调整到设备宽度,并禁止用户缩放页面 忽略将页面中的数字识别为电话号码 忽略Android平台中对邮箱地址的识别 当网站添加到主屏幕快速 ...

  9. [Everyday Mathematics]20150201

    设数列 $\sed{a_n}$ 单调递减趋于零, 证明 $\dps{\vsm{n}a_n}$ 收敛当且仅当 $\dps{\vsm{n}3^k a_{3^k}}$ 收敛.

  10. 色谱峰的类型BB,BV,VB等都是什么意思

    B(Baseline):峰在基线处开始或结束V(Valley):峰在谷点线处开始或结束P(Peak): 峰开始或结束与基线贯穿点BB就代表标准的峰:从基线开始出峰,最后峰到基线结束(from base ...