讀書——unity3D/2D手機遊戲開發
阿新 • • 發佈:2019-01-22
- unity的底層是用C++開發的,但是使用unity只是允許用指令碼進行具體遊戲開發,就回避了底層的複雜性,降低了開發的難度。
- unity裡的c#是執行再Mono平臺,微軟的c#是執行再.Net平臺上,語言本身而言二者差不多相同。
- unity指令碼不能使用關鍵字new去建立,因此也沒有建構函式。
- 遊戲開發中出現錯誤是很正常的,除錯程式發現錯誤非常重要。(1.顯示Debug.Log()LogError顯示文字呈現紅色顯示 2.vs 選擇F9設定斷點,啟動Attach to Uinty and Play,按F5繼續後面斷點程式或F11、F10執行單步除錯,最後按shift+F5停止除錯)
- 在unity裡寫指令碼除了要注意語言自身的語法規則,還要注意unity開發環境的特性。
- 如果只是一個普通的c#類,需要新增[System.Serializable]屬性才能序列化。
- unity只能序列化public型別的變數,但是不能序列化屬性。
- 如果有很多的物件,而且每個物件都需要一個不同版本的某函式,就可以用虛方法的方式實現函式的過載。
- 如果預製體在場景中修改了,要在右側Prefab->Apply.
- unity例項化物件不能使用關鍵字new,而是要使用關鍵字Instantiate。但會產生很多記憶體開銷,增加系統垃圾回收,解決辦法:使用快取池避免動態記憶體申請。
- unity中不能直接用IO操作讀取unity所需要的資源,必須將資源放在名為Reaources的資料夾下,允許多個這個名的資料夾且不用再同一根級目錄。