- 最后登录
- 2018-6-29
- 注册时间
- 2011-7-1
- 阅读权限
- 20
- 积分
- 359
- 纳金币
- 335582
- 精华
- 0
|
unity3d震屏幕只需要抖动摄像机就好
但是我拿它做2d,我的背景都是guitexture,修改camera的position不起作用
经过摸索,发现一个办法可以做到抖动屏幕效果
就是修改camera的rect属性,当然震完了需要改回来,(0,0,1,1)
下面的js代码提供了静态的抖动摄像机的函数
var shakeTime : float = 0;
var fps : float = 20;
var frameTime : float = 0;
var shakeDelta : float = 0.005;
var cam : Camera;
function Update () {
if(shakeTime > 0)
{
shakeTime -= Time.deltaTime;
if(shakeTime <= 0)
{
cam.rect = Rect(0,0,1,1);
Destroy(this);
}
else
{
frameTime += Time.deltaTime;
if(frameTime > 1.0 / fps)
{
frameTime = 0;
cam.rect = Rect(shakeDelta * ( -1.0 + 2 * Random.value), shakeDelta * ( -1.0 + 2 * Random.value), 1, 1);
}
}
}
}
static function ShakeCamera( seconds : float, pixelDelta : int)
{
var js : js_shakeCamera = Camera.main.gameObject.AddComponent("js_shakeCamera");
if(js)
{
js.cam = Camera.allCameras[0];
js.shakeTime = seconds;
js.fps = 30;
js.shakeDelta = pixelDelta;
if(Screen.width > Screen.height) js.shakeDelta /= Screen.height;
else js.shakeDelta /= Screen.height;
}
}
|
|