轉(zhuǎn)載請注明出處:??https://blog.csdn.net/weixin_44013533/article/details/130808689
本篇基本是大綱性質(zhì),參考價值不大,只有最后一小節(jié)“利用render Texture實現(xiàn)小地圖功能”花了點時間,可以看看,不過也用到了上面的canvas、UI image等知識、以及input等腳本功能,也算一個小練手吧
倒是csdn一個插圖小技巧運用得爐火純青了:圖片鏈接后加入# =50%x
可以按百分比控制圖片顯示大小,注意等號前一定要空一格,還可以添加布局如#pic_center =40%x
等

全文主要參考:
- 官方手冊 Unity UI
- 【客學(xué)院】Unity3D入門教學(xué) + 附c#編程基礎(chǔ)
一 Canvas
1.1 三種Render Space渲染空間 screen
1.2 canvas scaler畫布縮放器
畫布縮放器組件用于控制畫布中 UI 元素的整體縮放和像素密度。此縮放會影響畫布下的所有內(nèi)容,包括字體大小和圖像邊框。
參見官網(wǎng)手冊
1.3sprite
sprite editor
sprite mode:single,multiple(做圖形組合,逐幀動畫)
1.4 sprite packer
packing tag
1.5 unity目錄
package、asset
參考:
官方手冊 Unity 的 Package Manager
淺談Assets——Unity資源映射
1.6 RuleTile Tilemap
- 報錯:2d Game Kit The type ‘RuleTile’ exists in both Assembly-CSharp, and Unity.2D.Tilemap.Extras
還是通過改類名完成的 參考Unity 導(dǎo)入項目報錯
1.7 sprite packer
Sprite Packer 已棄用
請注意 Sprite Packer 在 Unity 2020.1 和更新版本中已棄用,并且將不再作為精靈打包模式的可用選項。現(xiàn)有已使用 Sprite Packer 的項目仍然可以繼續(xù)使用它,但是在 2020.1 以后創(chuàng)建的任何新項目在打包紋理時將默認(rèn)使用 Sprite Atlas 系統(tǒng)。
官方手冊
右鍵project>asset>2d>sprite atlas
sprite atlas使用目的就是減少draw call調(diào)用,提高運行效率
以后還會使用動態(tài)加載sprite,用到project assets 中resource目錄?(結(jié)合prefeb?)
packing tag不知道怎么用
1.8 sorting layer
這幾個layer區(qū)別是啥
注意canvas 的render mode:overlay直接覆蓋,它本身也有sort order但是是獨立的分層方式。
Order in Layer顧名思義,就是Sorting Layer的內(nèi)部排序,這樣配合Sorting Layer就是兩級的排序,可以解決大部分情況的渲染順序需求。
小結(jié): 渲染排序級別:Camera的Depth > Canvas的Sorting Layer > Canvas的Order in Layer
Unity中SortingLayer、Order in Layer和RenderQueue的講解
二 rect transform
參考官方手冊:矩形變換
2.1 pivot 中軸 中心點
注意Rect transform和transform的區(qū)別,只有在canvas上的image
2.2 anchor 錨點
快捷鍵:
ctrl+anchor 平移四個anchor
shift+anchor 等比例縮放對象
ctrl+shift+anchor 平移對象和anchor
2.3 uGUI源代碼
uGUI源代碼github
三 EventSystem
官方APIEventSystem
2019有這個api,2021不知道放哪個位置了。
官方手冊
在eventSystem中,inspector底部有這個信息框,顯示鼠標(biāo)等事件
3.1 event組件
- Event System事件系統(tǒng)管理器
- Standalone Input Module標(biāo)準(zhǔn)接收器
- Touch Input Module觸屏接收器
- Event Trigger事件觸發(fā)器
- Graphic Ray caster界面組件的射線檢測
- Physic/ Physic2 D Raycaster場景物體的射線檢測
3.2 TextMeshPro
3.3 Event Trigger事件觸發(fā)的介紹與使用
?。。。W(xué)習(xí)C#的委托和事件機(jī)制
3.4 Event Trigger事件觸發(fā)的介紹與使用——事件接口類型
四 UI組件分類
可交互組件(繼承Selectable類)和可視組件
4.1 Image
圖像 (Image)
前提:sprite需要將導(dǎo)入的圖片Type改為Sprite類型才能被UI使用
UI-Image有四種類型
- Simple 原始圖片
- Sliced 切割圖片
- Tiled 平鋪圖片
- Filled 填充圖片
其中:
preserve aspect:外觀保護(hù),等比縮放
set Native Size:
4.1.1sprite editor
4.1.2 slice類型
進(jìn)入sprite editor拖動綠條紋,改變border邊框大小
可以看到sliced類型,拉伸時邊框不會變形,這種類型圖片拉伸效果就比simple的好看
參考 Image.Type.Sliced
fill center :是否顯示中間的切片
4.1.3 Tiled
顯示切開的 Sprite,并將其可調(diào)大小的部分平鋪而非拉伸。
平鋪圖像的行為方式與 Sliced 圖像相似,區(qū)別在于將圖像的可調(diào)大小部分重復(fù)而非拉伸。對于拉伸時外觀不理想的精細(xì) UI 圖形,此功能很有用。
4.1.4 Filled
填充圖像將顯示 Sprite 的一部分,RectTransform 的其余部分保持透明。
例如,可將其用來顯示圓形或線形狀態(tài)信息,如技能cd、血條和進(jìn)度條等。
詳細(xì)內(nèi)容還是參考其他博客或官方手冊吧,這里只是簡單過一下
Unity技巧 #5 – 圖像 Image
官方手冊 9 切片精靈
4.2 raw Image
raw Image控件向用戶顯示非交互式圖像。此圖像可用于裝飾或圖標(biāo)之類的用途,還可以從腳本更改圖像以便反映其他控件的更改。該控件類似于圖像 (Image) 控件,但為動畫化圖像和準(zhǔn)確填充控件矩形提供了更多選項。但是,圖像控件要求其紋理為精靈,而原始圖像可以接受任何紋理。
用途:
- 網(wǎng)絡(luò)加載圖片(動態(tài)加載)
- 播放視頻或者動態(tài)圖(兩種特殊紋理:Render Texture、Movie Texture)
4.2.1 render texture
渲染紋理是一種 Unity 在運行時創(chuàng)建和更新的紋理。要使用渲染紋理,請使用 Assets > Create > Render Texture 創(chuàng)建一個新的渲染紋理,并將其分配給 Camera 組件中的 Target Texture。然后,即可像使用常規(guī)紋理一樣在材質(zhì)中使用渲染紋理。
官方手冊 渲染紋理
4.2.2 利用render Texture實現(xiàn)小地圖功能
目標(biāo):實現(xiàn)小地圖追蹤人物移動,按M鍵切換小地圖高度
使用的是官方第三人稱demo,參照下面的參考鏈接創(chuàng)建頂部攝像頭、創(chuàng)建Render Texture并綁定到這個攝像頭的target Texture,再用UI raw Image展現(xiàn)這個Render Texture,即可實現(xiàn)。
我在這基礎(chǔ)上,添加了攝像機(jī)跟隨和按“M”鍵切換頂部攝像機(jī)高度的功能,詳細(xì)參見下面代碼。
public class MiniMap : MonoBehaviour
{
public GameObject gameObject; //這個gameObject綁定到機(jī)器人
// Update is called once per frame
void Update()
{
var position = gameObject.transform.position;
float newHeight= this.transform.position.y;
if (Input.GetKeyDown(KeyCode.M))
{
newHeight = this.transform.position.y > 15 ? 10f : 30f;
}
this.transform.position = new Vector3(position.x, newHeight,
position.z);
}
}
參考: 教你3個步驟實現(xiàn)Unity小地圖(知識點:RenderTexture、Mask、shader)文章來源:http://www.zghlxwxcb.cn/news/detail-475171.html
五 總結(jié)
初步過了下uGUI,先前小地圖也曾提過多次,這次花了點時間實現(xiàn)了下,還是有成就感的。
接下來進(jìn)入動畫、紋理、特效、鏡頭等學(xué)習(xí)。文章來源地址http://www.zghlxwxcb.cn/news/detail-475171.html
到了這里,關(guān)于【學(xué)習(xí)筆記】Unity基礎(chǔ)(七)【uGUI基礎(chǔ)、利用render Texture實現(xiàn)小地圖功能】的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!