多语言展示
当前在线:919今日阅读:100今日分享:18

unity 脚本控制材质偏移实现动态照明

这一篇实现照明效果随猪脚移动。原理是用脚本控制贴图的偏移。注意:这一篇是接下面这篇的unity用shader遮罩模拟黑夜火把照明效果http://jingyan.baidu.com/article/2fb0ba40a8113500f2ec5f0e.html下一篇:unity 贴图动画实现照明忽大忽小http://jingyan.baidu.com/article/72ee561a58724ae16138df25.html
工具/原料
1

一台电脑

3

unity4.0

方法/步骤
1

先给猪脚添加rigidbody 2D组件“physics2D—rigidbody 2D”我们将重力gravity scale设为0,linear drag线性阻力设为8好了;

2

然后我们先让猪脚动起来新建脚本文件,并将附给猪脚。打开该脚本进行编辑。

3

脚本内容如下图,设置速度,数值随你:float speed =3f;

4

Vector2 a=  new Vector2(Input.GetAxis ('Horizontal')*speed,Input.GetAxis ('Vertical')*speed); rigidbody2D.AddForce (a);这两句是对猪脚添加力,力的大小根据按键的输入来判断

5

OK!猪脚设置完成,测试一下,没问题能动!

6

怎让贴图的偏移跟随猪脚变化呢?我们把黑夜的位置设为初始位置(0,0,0)我们把遮罩的x轴offset设为0.5时,会发现光斑的贴图正好在黑夜的边缘,因此猪脚从起始点走到到黑夜边缘的位置,遮罩的偏移正好是0.5因此如下图所示:

7

我们再次新建一脚本,将它附在黑夜上,打开该脚本,我们进行编辑,内容如下图:

8

起始点到边缘的长为64,高为32public float Le =64f; public float Wi=32f;设置偏移量:float offsetx=-(player.transform.position.x)/(Le*2f);float offsety=-(player.transform.position.y)/(Wi*2f);将偏移量的实时改变给遮罩“_mask”为遮罩贴图,上一篇说了。renderer.material.SetTextureOffset ('_Mask', new Vector2 (offsetx,offsety));

9

OK完成,效果出来了,这一篇够长了,下一篇说一下怎么用贴图动画实现照明光斑忽大忽小。上一篇:unity用shader遮罩模拟黑夜火把照明效果http://jingyan.baidu.com/article/2fb0ba40a8113500f2ec5f0e.html下一篇:unity 贴图动画实现照明忽大忽小http://jingyan.baidu.com/article/72ee561a58724ae16138df25.html

推荐信息