2016

2016年2月14日 星期日

【分享】Unity判斷是PC/手機/平板/iOS/Android 平台


這個可以判斷是iphone/ipad 以及 android手機或7吋以上 由於如果開發中會針對不同平台做不同處理 就可以用官方文件提供的方法來選擇不同的code 像是開發的時候常常會需要在PC(IDE上)跟目標平台不斷測試與切換就會用到 例如在PC上是mouseClick,在移動裝置上是touch 先直接上Code: ///Check the current device is tablet or not private void checkTheCurrentDevice() { #if UNITY_IPHONE string deviceModel = SystemInfo.deviceModel.ToLower().Trim(); if(deviceModel.StartsWith("ipad")) { bIsTablet...

【分享】Unity判斷是PC/手機/平板/iOS/Android 平台


這個可以判斷是iphone/ipad 以及 android手機或7吋以上 由於如果開發中會針對不同平台做不同處理 就可以用官方文件提供的方法來選擇不同的code 像是開發的時候常常會需要在PC(IDE上)跟目標平台不斷測試與切換就會用到 例如在PC上是mouseClick,在移動裝置上是touch 先直接上Code: ///Check the current device is tablet or not private void checkTheCurrentDevice() { #if UNITY_IPHONE string deviceModel = SystemInfo.deviceModel.ToLower().Trim(); if(deviceModel.StartsWith("ipad")) { bIsTablet...

【研究中】OnClick 與 Scroll / Drag 更精準的判斷


問題點:假設Menu中有多個Button,而Button是在一個Scroll Rect上可以滾動Menu 要如何解決使用者想要點按鈕但拖曳滾動(Scroll)選單過於靈敏而造成的誤判。 解法:將Click判斷更容易或是將Scroll觸發靈敏度降低 1.讓Click判斷更容易:目前的方法是假設觸發Down(按下)的時候紀錄位置,在Up(起來)時判斷位移,假設低於參數,則視為Click事件 優點:假設使用者想觸發按鈕,但卻略有位移會觸發Scroll,但同時也可以觸發Click達成目的 缺點:因為Scroll跟Click會同時觸發,這樣體驗上並不夠完善 2.讓Scroll靈敏度降低,可能要直接重寫Scroll方法掛在UI上,如果是直接調用的話,目前暫無解決的思路。 Code(C#) //增強Click判定(在此觸控位移距離內都算是Click事件,以避免使用者想Click選單卻誤判為Scroll) ...

2016年1月19日 星期二

2016年1月11日 星期一

【實作】滑鼠/鼠標/觸控點擊特效系統


【適用情境】當專案需要滑鼠/觸控點擊的時候產生一個粒子效果 有2種呈現方法 1.常駐型粒子效果,適用於滑鼠 2.點擊/觸控產生粒子效果並隔數秒後銷毀 【法1】 1.創建一個粒子系統(particle system),或導入現成的粒子prefab 2.將以下Script導入粒子系統物件上 [C#] public float Distance = 10; void Update(){ Ray effect_ray = Camera.main.ScreenPointToRay(Input.mousePosition); Vector3 pos = effect_ray.GetPoint(Distance); ...

2016年1月10日 星期日

【翻譯】Unity官方教學 - UI EVENTS AND EVENT TRIGGERS(UGUI)


翻譯: 場景中的UI常常會有很多互動,而使用者輸入和UI元素則是由Event(事件)控制 當Canvas加入後,EventSystem(事件系統)物件也會被加入,這個gameobject包含事件系統組件以及各種輸入模組,當一個場景開始事件系統,他就會檢測輸入的對象,根據檢測到的模組,以及確定輸入與UI元素之間的關係 Event System中的屬性 First Selected(第一選定對象)可以指定預設切換到本場景的第一個UI為選定狀態 這裡我們來指定一個按鈕,隨後啟動場景之後,會看到按鈕顏色略有不同,這代表按鈕處於被選取的狀態這裡常是按下空白鍵,按鈕就會呈現被按下的狀態,無須用滑鼠點擊,這是不用滑鼠或控制器,這常用於創建菜單系統 Input...

2016年1月8日 星期五

【翻譯】Unity官方教學 - UI Imgae (UGUI)


圖像(Imgae)組件是一個顯示在螢幕的可視化UI元素,可用於Button、Panel、Slider上 Source Image是圖片來源 Color是圖像的顏色,可以調節色度、明暗、透明度 Material(紋理),通常是none沒有紋理 Image Type:預設是Simple,會延伸到RectTransform的大小                Sliced(切片):將圖片切成9等份;會多出一個fill center選項可以填充中心          ...

【翻譯】Unity官方教學 - UI Button (UGUI)


翻譯: 按鈕是通過檢測使用者輸入的觸發事件的元件,對於一般使用者輸入按鈕的圖形、滑鼠點擊或移動到上方產生不同的效果 要創建現有按鈕:右鍵>UI>Button 按鈕跟其他UI元素一樣必須是canvas的child子物件,如果沒有canvas直接創建button則會自動產生一個canvas,有關更多canvas詳細訊息可以參考canvas影片 New一個button會帶有一個text,這個text是一個可選的,button中不一定要有text(例如純圖示的按鈕),因此創建後不需要也可以直接刪掉,有關image跟text的詳細訊息可以參考其影片 按鈕中的Interactable(可互動性)是定義按鈕是否可接受輸入,如果要禁用按鈕可以把他勾掉(例如子選單彈出時,避免母畫面的button被觸發就可以禁用) Transition(變換模式) 是指按鈕在一般狀態(normal)...

2016年1月7日 星期四

【實作】Unity音樂/音效開關與調整音量大小(UGUI)


音樂/音效勾選鍵與控制條 適用情景:當你的遊戲在選項選單中需要勾選開啟音樂/音效以及調節音量大小控制條 結果圖如下: 【步驟】 1.創建UI Toggle,Toggle底下有個Label是說明文字可以改成你要的字樣,或是整塊取消掉改成用底下的Background圖片當作按鈕也OK,這邊用預設的方式。 2.創建UI Slider,調整條也可以套用客製的圖片或效果,這邊也是用預設的 3.新增Audio...

【實作】Unity公告系統(UGUI)


Unity 公佈欄 / 公告 / 說明框 UI系統 適用情景:當你的遊戲需要再開始畫面有一個公佈欄或是更新日誌 示意圖如下: 結果圖如下: 【步驟】 1.創建UI Image 2.在Image中添加Scroll Rect 3.在Image中添加Mask 4.在Image底下添加一個Text 5.在Image底下添加一個Scrollbar,在Direction中選擇Bottom...

2016年1月6日 星期三

【翻譯】Unity官方教學- Rect Transform (UGUI)


翻譯: Rect Transform被用於所有的UI上,傳統的物件我們會變換對象的角度與位置,Rect Transform是針對對象中心位置的高度與寬度,在顯示中是一個簡單的2D矩形,Z軸作為對象的位置,也可以用來在3D環境下做變化,Rect Transform跟一般的Transform的差別就是錨的概念,如果父子物件都是Rect Transform,那你可以固定子物件的父物件,父UI元素的定位對象基於所指定的位置與大小而去移動、變大變小等等,在某UI底下的子UI一定會定錨在父UI身上 如果要調整Rect...

2016年1月5日 星期二

【翻譯】Unity官方教學- UI Text(UGUI)


The Text component, used to render text onscreen for various purposes such as labels, buttons, and other information. 文本組件,主要是用於呈現文字在螢幕上,並用於例如標籤,按鈕,和其他訊息 Text主要是渲染文本在螢幕上,主要的功能就是顯示內文(Text),欄位為顯示在螢幕上的字符串,可以是簡單的文字或是動態顯示分數等等 如果換行會UI顯示上也會換行,所以最好在底下留下新的空白處 Character風格 Font...

【翻譯】Unity官方教學- UI Canvas(UGUI)


前言:這個系列是翻譯Unity官網上的UI教學,暫時沒有時間做成中文字幕,翻譯的如果沒有很好請多包涵XD 先簡單介紹一下Unity的UI史 OnGUI時期(Unity4.6以前) 在Untiy4.6以前官方式提供OnGUI函數來提供UI,而且不支援可視化開發,並且始終在3d object上方,也因此後來ArenMook就開發出一套NGUI plug-in讓UI這塊變得更容易開發,也可以顯示3d model跟粒子效果,網路上也有大量的教學,幾乎也被視為Unity的必備插件之一 UGUI時期(Unity4.6以後) 而4.6版本後出現了新版的UGUI,也是NGUI作者ArenMook從2012年11月加入Unity協助開發GUI讓UI的呈現更優化,因此在選擇GUI上通常會選擇UGUI,但NGUI仍然有持續更新也有使用者持續使用,如果已經使用NGUI的專案或是熟悉的開發者通常也會選擇繼續使用 到底要用UGUI還是NGUI: 有用過/正在用NGUI→選擇NGUI 沒用過NGUI的開發者→直接使用原生的UGUI即可 大致上是這樣,網路上也有一些比較專業的分析文,去針對兩者比較與效能表現 例如Drawcall數量,記憶體配置等等,不過大致上都是可用,而不如當初OnGUI可用性極低 所以兩者之中選擇影響並不會太大,而以下則是4.6版本時期的介紹,延用至5.0的今天也是OK的 -...

Popular Posts