unity關於螢幕震動以及物體振動的乙個實現方法

2021-08-15 01:42:58 字數 1272 閱讀 8821

螢幕震動在遊戲特效製作中起著非常非常非常重要的作用,可以說巧妙的運用震動可以使整個遊戲的檔次上公升乙個台階,或者說是遊戲特效的點睛之筆,打擊感加強的關鍵所在,那麼如何用unity實現這個震動呢?

下面直接上**,乙個十分簡單易懂的震動實現(針對物體的)

public transform squaretransform;

public float shaketime = 0.2f;//震動時間

public float shakeamount = 0.7f;//振幅

public float decreasefactor = 1.0f;

vector3 originalpos;

public gameobject square;

public gameobject explonsion;

bool damage;

bool isdead;

// use this for initialization

void start ()

void awake()

void onenable()

// update is called once per frame

void update ()

else

if(input.getkeydown("k"))//按下k鍵**

}}

下來我們先看需要設定的變數

位置,振幅,震動時間

在onenable語句中執行的是做到在執行的一開始就確定物體的位置,這也就區分了物體究竟是在定點震動還是在範圍內震動,簡單的說就是攝像機震動還是物體本身震動

squaretransform.position = originalpos + random.insideunitsphere * shakeamount;

shaketime -= time.deltatime * decreasefactor;

}else

重點需要解釋的是這幾句

squaretransform.position = originalpos + random.insideunitsphere * shakeamount;

random.insideunitsphere這個方法做到了在直徑為1的單位球體內隨機選定位置資訊,與預先確定好的座標相加就能做到震動,最後乘以振幅,達到效果

shaketime減去持續時間,當小於0的時候,停止,在不進行震動時,shaketime為0.2f

unity 判斷物體是否在螢幕內

方法一 使用unity系統函式 onbecamevisible 和 onbecameinvisible 物體在螢幕內 void onbecamevisible 物體在螢幕外 void onbecameinvisible 注意 物體只要有一部分在螢幕內onbecamevisible都會執行,只有物體完...

Unity 中關於獲取到物體的方式

在unity中獲取到某個物體的方式有很多種,下面我們來分別介紹一下。1 public gameobject target 通過外部賦值來進行獲取,但是在小專案中還可以使用,大的專案會管理非常混亂,尤其是在打包assetbundle時,依賴關係很難處理。2 gameobject.find 這種獲取物體...

unity中關於世界座標與螢幕轉化

在unity中 我我們有的時候需要用到相關的座標轉化。今天使用到了 worldtoscreenpoint maincamera getcomponent worldtoscreenpoint new vector3 世界座標的遊戲物體的世界座標 有一點需要說一下的是,這個是世界左邊的原點是與canv...