1. 程式人生 > >讀書——unity3D/2D手機遊戲開發

讀書——unity3D/2D手機遊戲開發

  • 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的資料夾下,允許多個這個名的資料夾且不用再同一根級目錄。