轉(zhuǎn)載請注明出處!
更多插件翻譯,可以看我的個人博客:http://blog.xudawang.fun
介紹
在使用Unity的時候,我們經(jīng)常會把某些字段(變量)暴露在Inspector面板上族展,像是這樣:
如果我們想把屬性暴露在Inspector面板上怎么辦呢悬垃?
這時我們就可以用到SetProperty“插件”啦!使用它占卧,你只需要寫一行超級簡單的代碼遗菠,就可以讓屬性出現(xiàn)在Inspector面板上啦联喘!
這個“插件”其實不是插件,這是LMNRY大神上傳到Github上的一個開源項目辙纬。
你可以免費下載豁遭,并使用這個“插件”!
Github地址:https://github.com/LMNRY/SetProperty
值得一提的是贺拣,這個插件是使用的MIT開源許可證蓖谢,關(guān)于MIT許可證,大致意思如下:
“MIT License
MIT是和BSD一樣寬松的許可協(xié)議,作者只想保留版權(quán),而無任何其他了限制.也就是說,你必須在你的發(fā)行版里包含原許可協(xié)議的聲明,無論你是以二進制發(fā)布的還是以源代碼發(fā)布的纵柿。
* 你可以使用蜈抓,復制和修改軟件
* 你可以免費使用軟件或出售
* 唯一的限制是,它是必須附有MIT授權(quán)協(xié)議(如果是以源代碼的形式提供就要在其中包含MIT的LICENSE文件昂儒,如果以軟件的形式發(fā)布就要在界面顯示說明(在使用了別人的代碼部分注明出處沟使、作者、使用了MIT協(xié)議即可))”
作者:一代騎俠? ? ?原文鏈接:https://www.zhihu.com/question/25079718/answer/30025234? ? 來源:知乎
如何使用?
第1步:從Github上下載文件
首先打開這個網(wǎng)址:https://github.com/LMNRY/SetProperty
先點擊綠色的【Clone or download】按鈕
再點擊【Download ZIP】渊跋,這樣就可以下載下來文件啦腊嗡!
第2步:解壓下載下來的文件
文件下載下來是一個.zip的壓縮包,直接解壓就可以
第3步:將解壓好的文件拾酝,導入Unity工程
1. 在Unity工程里新建一個文件夾燕少,叫SetProperty (其實隨便叫什么都可以)
2. 然后把之前解壓出來的所有的文件,都拖進剛剛建好的SetProperty文件夾中 (注意LICENSE文件就是MIT授權(quán)協(xié)議蒿囤,請不要刪除它)
3. 導入完成客们!
第4步:使用!
1. 創(chuàng)建一個新的腳本材诽,就叫做Test.cs吧底挫!
2. 在腳本中輸入:
[SerializeField, SetProperty("Number")]?//這個特性就是此“插件”的核心,照著寫就可以脸侥,參數(shù)中填寫屬性名建邓。注意此特性要放在字段上!
private float number;
public float Number?//這是我們要暴露在Inspector面板上的屬性
{
get { return number; }
private set { number = Mathf.Clamp01(value); }
}
3. 把腳本掛載到隨便一個游戲物體上睁枕,即可看到效果官边!
附錄:SetProperty官方文檔
A PropertyAttribute/PropertyDrawer combination that allows for properties in Unity
Unity allows you to serialize private fields with [SerializeField]. Use the new [SetProperty] attribute to have a public property set every time the field is modified in Unity's inspector. NOTE: It is okay to have private setters for public properties. Vanilla classes (i.e. non-MonoBehaviours) also work as well.
[SerializeField, SetProperty("Number")]
private float number;
public float Number
{
get{return number;}
private set{number = Mathf.Clamp01(value);}
}