1. 程式人生 > >【NGUI】Rpg對話方塊

【NGUI】Rpg對話方塊

-記錄一下做RPG中,和NPC對話,彈出對話方塊的做法。

剛開始使用NGUI,還有很多不懂。


-------------------------------------------------------------------------------------------------



首先是中文顯示。

把text的label的NGUI設定成Unity,然後把字型選擇成這個Arial。那就可以顯示中文了。

-----

顯示文字

overflow調節一堆文字顯示的效果。當文字的數量大過長度時,是分段還是壓縮。我選擇的clamp content是自動換行。

然後【widget】的privot就是控制文字的位置。雖然可以調上面的position,但是這個比較方便。

我的遊戲執行後,不知道為什麼文字會變成左上角。所以我在程式碼裡設定了一下。

backGround.transform.GetChild(0).gameObject.GetComponent<UIWidget>().pivot = UIWidget.Pivot.Center;//用這行就可以設定了。

backGround是text。需要獲得子類來設定。

最後是設定text。

GetComponent<UILabel>().text

獲得這個text,然後修改就可以了。


-------

button的響應

本來是想使用滑鼠點選的。但是因為還不是很懂NGUI的位置轉換。雖然能顯示出來,螢幕位置對了。但是,世界位置不對,所以滑鼠點選的時候點不到那個button。

然後就換成了響應事件。

滑鼠點選程式碼:

if (Input.GetMouseButtonDown(0))//左鍵按下
                {
                    Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
                    RaycastHit hit;
                    if (Physics.Raycast(ray, out hit, 100))//發射射線
                    {
                        if (hit.collider.gameObject == this.gameObject)//如果點選的物件是當前的物件
                        {
                            //修改成想要的處理的效果
                        }
                    }
                }

響應事件:


首先新增這個函式到button


然後在程式碼中加這一句。button就是你要檢測的那個gameobject。

然後在函式中做相應的事情。然後這就可以了。當點選那個button的時候,就會執行ButtonClick函式。