最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

Unity + Python 環(huán)境搭建

2020-03-28 01:34 作者:__鬼貓貓  | 我要投稿

達芬奇開發(fā)告一段落,想開發(fā)的工具都已經(jīng)完成了。坐等達芬奇更新了......

興趣轉(zhuǎn)移到了研究 Shader,找了各種資料,人手推薦馮大佬的《Unity Shader 入門精要》。在我還是一只菜雞的情況下,完全做不到各種?shading?language?切換自如,當然是大佬用啥我用啥。我同事痛心疾首質(zhì)問我為何不去學(xué) Unreal Engine 時我的回答。


背景

在:

-> “創(chuàng)建 GameObject 并重命名”

->?“創(chuàng)建 Material 并重命名”

-> “創(chuàng)建 Shader 并重命名”

-> “把 Shader 指給 Material”

-> “把 Material 賦給 GameObject”?

重復(fù)了三遍之后,作為一名Pipeline TD,根本就不能忍了,必須搞個工具一鍵完成上述步驟。


搜索 “Unity 插件開發(fā)”,emmm,C#?JavaScript?Boo?

C# 是不可能的,這輩子都不會去學(xué) C# 的。

JS 嘛,想想我那 ugly 的前端代碼,還是算了。

Boo 你是什么鬼?

這是瞧不起我大 Python 嗎?

抱著試試看的心態(tài)搜索“Unity Python”,嚯!看我發(fā)現(xiàn)了什么,Unity 官方支持Python了

https://docs.unity3d.com/Packages/com.unity.scripting.python@2.0/manual/

讀完文檔非常興奮,這是官方專門為媒體娛樂行業(yè)(當然包括影視后期啦)無縫對接 Pipeline 量身打造,哇哦!簡直就是在艾特我!蒼蠅搓手中......但,額,怎么開始啊??

官方你敢把文檔寫全嗎?能別把環(huán)境搭建藏在論壇的犄角旮旯里嗎?浪費了大好青春終于拼湊出來......

https://forum.unity.com/threads/introducing-python-for-unity-editor.812748/


注意

  1. Unity 版本必須 2019.3 及以上

  2. Python 僅支持 2.7,并需要自行安裝

  3. Windows 的話系統(tǒng)要求是Win 10,?1803 以及以上

目前(2020/03/28)并不支持 Python 3,是考慮到影視后期行業(yè)目前還是大規(guī)模的 Python 2.7,且換 Python 3 喊了幾年都沒動靜的事實上做的決定,但 Python 3的支持已經(jīng)安排上了。如果你的電腦安裝了Python 3,請將其從 PATH?中移除,否則可能會引起 Unity 崩潰。


安裝

  1. 找到你工程中的 .../Packages/mainifest.json文件,在?dependencies?中加上 "com.unity.scripting.python": "2.0.1-preview.2",

  2. 你的 Unity 軟件chua chua chua 就開始安裝然后安裝好了。

  3. 在菜單 Edit > Project Settings 中左欄就可以看到 Python for Unity 項,在頁面中會顯示當前的各種版本信息以及識別到你系統(tǒng)里的 Python

確定都沒問題了昂。

Hello World - 1

Unity 中有兩種執(zhí)行 Python的方式,這不得不說跟達芬奇的尿性一模一樣。

一種可以直接在軟件內(nèi),開啟 Python Console,就可以直接敲代碼,臟亂差的工作都已經(jīng)自動做好了,適合無需界面無需存儲狀態(tài)的工具,以及就是想先測試核心代碼。

目前這個里面編輯器相當簡陋,無代碼高亮、補全,甚至最基本的代碼寫錯了,都不會有報錯提示的......

先試一下:執(zhí)行菜單 Windows > General > Python Console,在下面的那個文本框中輸入


import UnityEngine
print 'Hello World'
UnityEngine.Debug.Log('Hello World')


然后點擊?Excute?即可看到輸出框中輸出了"Hello World"。


輸出結(jié)果


這里跟行業(yè)其他 DCC 軟件的 Script Editor 非常像,比如,ctrl + enter 即可執(zhí)行全部代碼;選中部分代碼,然后 ctrl+ enter 即可執(zhí)行選中的代碼。

Hello World - 2

第二種方式,適合搞起復(fù)雜工具,花哨 PySide 界面的那種,運行于 Unity 之外的。原理跟達芬奇的一樣,啟動 Unity 的時候,會悄咪咪啟動一個子進程服務(wù)監(jiān)聽,然后你跟他通信這樣。

我本人使用 PyCharm 作為主 IDE,所以就以它為例,為啥不用 VS Code? 因為我 PyCharm 是花錢買的。

新建一個工程,并且在 Project Structure 中添加 .../Library/PackageCache/com.unity.scripting.python@2.0.1-preview.2/Python/site-packages 這個路徑,其實就是將 Unity 相關(guān)的模塊加到 PYTHONPATH 的意思。


新建一個文件,輸入以下內(nèi)容,然后運行

service = unity_client.UnityClientService()
connect = unity_client.connect(service)
geo = service.UnityEngine.GameObject.CreatePrimitive(service.UnityEngine.PrimitiveType.Cylinder)
geo.name = "myCylinder"
# connect.close()

即可看到 Unity 場景中創(chuàng)建了個名字叫 myCylinder 的 Cylinder。

此時 Python 并沒有退出,如果你想執(zhí)行完就拍拍屁股走人,把上述最后一行去掉 # 即可,這里不展開說這是咋回事兒了。

今天作為一個環(huán)境搭建說明,已經(jīng)夠了,后續(xù)如何添加菜單,如何讓Unity 去通知你的代碼等等有機會再說。

這里有我的示例代碼:https://github.com/muyr/hello_unity


文檔

Python API 的文檔何在?

抱歉現(xiàn)在沒有,感覺將來也不會有......它完全是 C# API 的移植,所以,你就去參考 C# 的 API 文檔吧,把 C# 的代碼翻譯成 Python,唉,說好這輩子都不學(xué) C# 呢!

https://docs.unity3d.com/ScriptReference/?

B站專欄不適合寫有代碼的技術(shù)文章,我精心排版的?Markdown?優(yōu)雅卷面完全沒了,還是需要放簡書一份。

歡迎關(guān)注我的公眾號“真的起名無力”

掃碼關(guān)注公眾號


Unity + Python 環(huán)境搭建的評論 (共 條)

分享到微博請遵守國家法律
台中市| 灵丘县| 托克托县| 克拉玛依市| 中方县| 镇康县| 安仁县| 周至县| 黔东| 高碑店市| 德化县| 新蔡县| 揭西县| 上思县| 东莞市| 潢川县| 梁平县| 琼海市| 龙门县| 海丰县| 石家庄市| 莒南县| 泗水县| 望奎县| 凯里市| 成武县| 淄博市| 普安县| 文成县| 昌都县| 湘潭县| 泰来县| 大方县| 河北省| 新竹市| 舒兰市| 德格县| 科尔| 阿克| 龙川县| 朝阳市|