iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 5
0
自我挑戰組

Unity 開發從3D出發系列 第 5

[30天Unity大破解] 5: 小嗎沙出來打球啦(保齡球美觀+介面起頭)

  • 分享至 

  • xImage
  •  

教練,我不想再吃陽春麵了/images/emoticon/emoticon10.gif

各位碰油大家好,我又來啦。上篇實在是太陽春了,今天我們來讓它脫胎換骨吧。

Asset Store

  • 我們來下載一下別人幫我們做好的素材package。
    保齡球素材下載
  • 簡單的download再import到專案中就可以看到素材了喔。

檔案解析

我們總要知道我們到底import了甚麼,每個package格式都不一樣,有的還會加上說明文件和範例畫面,我們只須留我們會用到的,避免檔案過大,又不易整理。

讓我們看一下這份檔案的資料

  • Prefabs資料夾 這裡放的是各個完整物件我們稱它為prefab,可以直接拉進畫面裡。
  • (發現hierarchy的icon是藍色的,後面說明- Prefab
  • Resources資料夾 放這個物件所需要的部件
    • Geometry 這裡是放模型的原型,包含它的結構圖。

    • Material 這裡放物件的材質

    • Textures 材質所需的貼圖

      • 這裡就把圖片添加到albedo

Material簡單介紹 /images/emoticon/emoticon07.gif

=>這邊就比較偏美術部分,這邊先簡單講幾個常用的。
自己也可以在檔案中右鍵自創material

  • Albedo 材質色彩
  • Metallic 金屬感 數值越高越強
  • Smoothness 光澤度 數值低時是霧面,數值高時偏亮面
  • normal map 法線貼圖 可以有凹凸感的感覺
  • Tiling表示貼圖座標的缩放倍数
  • Offset表示貼圖座標的起始位置

Prefab簡單介紹

  • prefab怎麼來? 試著拖曳保齡球組將其從hierarchy拖進Asset裡,這樣你就得到一個prefab了喔,而hierarchy中的保齡球組就是這個prefab的實例化物件 。
  • prefab是甚麼? 我們可以把prefab視為設計圖,只要我們一改變這個設計圖,所有它在hierarchy中的gameobject都會隨之改變。
  • 如何讓gameobject脫離prefab掌控? 對保齡球組按下右鍵
    • unpack prefab icon變為原本顏色
    • unpack prefab complete 若它包含的物件(child)也是藍框框,child也會跟著脫離
  • 如果我改變了藍色gameobject,怎麼辦?
    • 你會看到右上角的區域,像是這裡代表我多加了prefab沒有的component
    • revert all: 將更改去除,返回原本prefab狀態
    • apply all:將此設定套用到prefab,並且所有prefab產生的object也會隨之更改。

抱歉,po主太混,有時間會開一個詳細篇的((又在立flag.../images/emoticon/emoticon17.gif

練習:

地板改造

  • 地板實在太黑了,而且跑道不是正方形(調整Floor的scale),請大家運用到目前為止所學的想辦法改造它。

地板材質提供

添加物裡效果

  • 利用Prefab特性將所有瓶子和保齡球添加Mesh collider 和ridgidbody,mesh依形狀加入
  • 範例

UI起頭/images/emoticon/emoticon69.gif

點選Gameobject->UI->新增你喜歡的物件


可以試著玩看看他們的功能,比如button就可設置一般,接觸,按下,無法按,等時期的顏色

Canvas

UI會被包含在canvas的畫布中,unity預設在加入UI控件到場景時會自動幫你建畫布,若UI沒有在畫布裡,將會無法顯示。
* 介紹Render Mode
1. Screen Space -OverLay 不會參照到Camera,UI直接顯示在任何圖形之上,不會被任何物體遮擋。
2. Screen Space-Camera 使用一個Camera作為參照 Camera視錐改變時UI平面會自動調整大小,也就是說如果gameobject比UI更靠近camera,UI就會被擋住。
3. World Space 就是把canvas當成3D的物件啦。

Eventsystem

簡單說明就是可以監聽UI傳來的訊息事件((不要誤刪了,不然所有操作都會變無效/images/emoticon/emoticon16.gif
Ex:

  • button 被點擊
  • 文字輸入框接收到文字改變

Rect transform

  • 要記得這個座標位置跟物件的transorm位置是不一樣的!!之後會跟大家介紹差異和如何轉換。
  • Event舉例介紹:
  • Button ->On Click :button被點擊時。
  • scrollbar ->On value change: 數值改變時
  • 例子:下面就是當按鈕被按時 ball(框框沒按就是false)會消失=>
    左邊放被操作的物件,右邊放物件要做的事(unity本身有幫你寫好很多功能,大家可以玩看看)
    在學到寫code之後,這裡也可以放上自己寫的功能瞜。

今日所學

  • Asset store import
  • Material 介紹
  • Prefab 介紹
  • UI 起頭

結語/images/emoticon/emoticon02.gif

朋友們抱歉了,今天因為時間的關係沒辦法寫太多,code的部分希望下篇能進入,讓保齡球動起來。

參考:
Rendering mode
https://docs.unity3d.com/Manual/StandardShaderMaterialParameterRenderingMode.html
convex解釋
https://zhidao.baidu.com/question/1994161000530362907.html
UI
http://www.cg.com.tw/Unity/Content/Unity_23.php
Prefab
https://medium.com/@chrislin1015/unity%E6%89%8B%E6%9C%AD-prefab%E7%B0%A1%E5%96%AE%E8%AA%AA-3327c57f4901


上一篇
[30天Unity大破解] 4:碰碰樂(collider篇)
系列文
Unity 開發從3D出發5
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 則留言

0
not
iT邦新手 4 級 ‧ 2021-09-01 16:21:49

看到第五篇才發現斷尾 qq
經過一年了要繼續補完嗎?

我要留言

立即登入留言