码迷,mamicode.com
首页 > 编程语言 > 详细

Unity3D之空间转换学习笔记(二):基础数学

时间:2015-07-13 23:52:53      阅读:160      评论:0      收藏:0      [点我收藏+]

标签:

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

时间Time

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

时间加/减速

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

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

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

 1 using UnityEngine;
 2 using System.Collections;
 3 
 4 public class Demo04Script : MonoBehaviour
 5 {
 6     void Start()
 7     {
 8     }
 9     
10     void Update()
11     {
12         if (Input.GetKeyDown(KeyCode.A))
13         {
14             Time.timeScale = 0.1f;
15             Time.fixedDeltaTime = 0.002f;
16         }
17         if (Input.GetKeyUp(KeyCode.A))
18         {
19             Time.timeScale = 1.0f;
20             Time.fixedDeltaTime = 0.02f;
21         }
22     }
23 }

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

随机数Random

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

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

数学运算Mathf

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

平滑过渡变色

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

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

 1 using UnityEngine;
 2 using System.Collections;
 3 
 4 public class Demo05Script : MonoBehaviour
 5 {
 6     public GameObject cube;
 7 
 8     private Material _material;
 9     private Vector3 _colorSpace;
10 
11     void Start()
12     {
13         _material = cube.GetComponent<Renderer>().material;
14 
15         _colorSpace = new Vector3(
16                 Random.Range(0f, 10f),
17                 Random.Range(0f, 10f),
18                 Random.Range(0f, 10f)
19             );
20     }
21     
22     void Update()
23     {
24         float r = Mathf.PerlinNoise(Time.time, _colorSpace.x);
25         float g = Mathf.PerlinNoise(Time.time, _colorSpace.y);
26         float b = Mathf.PerlinNoise(Time.time, _colorSpace.z);
27 
28         _material.color = new Color(r, g, b);
29     }
30 }

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

工程文件下载

敬请期待

Unity3D之空间转换学习笔记(二):基础数学

标签:

原文地址:http://www.cnblogs.com/hammerc/p/4644162.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!