顯示包含「uGUI」標籤的文章。顯示所有文章
顯示包含「uGUI」標籤的文章。顯示所有文章

2016年3月29日星期二

[Unity3D]讀取畫面之簡單進度條制作(Loading Screen)

之前轉換場景一直是用以下的方法:

Application.LoadLevel("SceneName")

因為這個方法比較懶和方便,但隨著場景內的東東越來多,轉場需時也開始越來越長,也因此在轉場時有了是不是卡住了或死機了的感覺。有見及此,小弟要開始製作一個有進度條的過場效果。然後找到Unity3D有以下的方法可以用:

Application.LoadLevelAsync ("SceneName");

剛開始滿失望的因為看到Unity Pro才可以用,然後發覺得原來Unity5已經可以免費使用了!關於它的API請到這裏:http://docs.unity3d.com/ScriptReference/Application.LoadLevelAsync.html

好了我們開始製作了~

2016年3月15日星期二

[Unity3D]uGui製作新手引導

新手引導就是讓玩家一開始玩遊戲時,指示玩家按不同按鈕,希望籍此讓玩家初步了解遊戲介面和各種功能。玩家角度,新手引導就是要不斷「點點點點」然後就可以開始自己玩遊戲了。

那麽應該怎樣做呢?比較常見及簡單的方法就是高亮相關的按鈕,加上箭頭/手指/對話框指示玩家(只能)按下這個按鈕,然後不斷重複這個動作在不同按鈕上,直至新手引導完成。簡單效果大約是這樣:



應該怎樣去達成這個效果呢?

2015年12月2日星期三

[Unity3D]在UI介面不觸發遊戲畫面的物件(Blocking Clicks)

在弄一個類似回合制的遊戲,遊戲上有個uGUI介面(Render Mode為Screen Space Overlay), Canvas設定如圖:


和一個可以放大縮小的棋盤,按下棋盤的格會出現紅色的圓點。

可是棋盤放大時,當玩家想按UI介面的按鈕,會不小心同時觸發棋盤格(出現紅點):




我想處理的問題是按下UI介面(上方半透明的介面)不會觸發棋盤的功能。

然後謝謝Facebook Unity群組的大大提供了一個不錯的影片:
Unity UI - Blocking clicks
https://www.youtube.com/watch?v=EVZiv7DLU6E

影片提供了三個方法:
1. Event System Checking
20160516補充:之前有網友反映EventSystem.current.IsPointerOverGameObject()在Editor測試沒有問題但放在Android機就不行,然後小弟找到以下方法
using unityEngine.EventSystems; 
#if IPHONE || ANDROID
 if(EventSystem.current.IsPointerOverGameObject(Input.GetTouch(0).fingerId))
#else 
 if(EventSystem.current.IsPointerOverGameObject())
#endif 
{
  //棋盤的邏輯
}

參考至雨松大大:http://www.xuanyusong.com/archives/3327 
另外找到一個不錯的研究:http://blog.csdn.net/liqiangeastsun/article/details/46490041

2. Event Triggers
將Event Triggers放到Cube/棋盤格,然後Pointer Up,類似uGUI Button的OnClick,把想運行的方法加進去

然後在攝影機(Camera)加上Physics Ray caster

3. Event System Interface
加上PointerClickHandler這個interface然後把棋盤的邏輯放進下面的代碼裏:
public void OnPointerClick(PointerEventData eventData){ 
//棋盤的邏輯
}

然後在攝影機(Camera)加上Physics Ray caster

雖然影片中提及第三個方法就最好的,但是我還是用了第一個方法。因為我不想把棋盤的邏輯放進另一個Function(方法)裏,不然比較麻煩,所以最後用一個if-case把想做的事情包住就好了。


2015年7月24日星期五

[Unity3D]讓物件圍繞外在一點旋轉


小弟在用uGUI, 因為uGUI上沒有任何Tween的東東,所以最後盯上了DoTween作研究
然後想做一個Menu圍繞外在一點而不是物件自己的中心旋轉進入畫面,大概想做這個效果:




在找DoTween有沒有方法告訴物件圍繞自定的某一點旋轉,而不是物件的中心,找了DoTween官方的API好像沒有類似的東西,最後發現原來是我方向錯了 OTL


2015年6月15日星期一

NGUI與uGUI的抉擇

最近因為工作關係再次接觸Unity3D, 雖然上年做FYP也是用Unity,但已經有一年多時間沒有再用甚至沒有寫code了!這次先研究UI部份,發現Unity上年更新4.6時已經出了新的GUI系統(uGUI);NGUI則是本身最火爆的GUI插件!但是因為NGUI本身要錢,所以想研究uGUI做開發的可能性。

雖然沒有用NGUI的經驗,但接觸了uGUI已經有大約兩星期了,可以應付目前的工作,而且也很方便。在網上也翻查了一下,看了不少有用的資料,也發現原來NGUI的作者Michael “ArenMook” Lyashenko在2012 - 2013年曾在Unity工作,我想這給了uGUI不少幫助!


我想我還是會做uGUI做下去!

發現一個不錯的比較,我把它轉成了繁體,值得參考喔~
(可按圖放大)