螢幕震動在遊戲特效製作中起著非常非常非常重要的作用,可以說巧妙的運用震動可以使整個遊戲的檔次上公升乙個台階,或者說是遊戲特效的點睛之筆,打擊感加強的關鍵所在,那麼如何用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...