求教一年unity3D經驗需要掌握哪些知識?
現在找Unity3D的工作大多都要求一年以上經驗,我想請教各位前輩,一年Unity經驗的開發者比第一次進入公司工作的開發者多了哪些知識,經驗和技巧?望各位前輩不吝賜教!
我現在半年多經驗了,別的不說,至少要會一款UI插件(我用NGUI),懂得模型動畫粒子貼圖這些七七八八的常用東西(就算詳細的不了解,也得懂得哪個調用那個。比如你不知道動畫系統有分新舊各有什麼優缺點,你好歹得知道動畫是被模型調用的,貼圖是貼在模型上而不是動畫上)。重點來了,一定要懂一點C#!而且思路要清晰,方法要會自己找!!!
不求成為大神,把for,if這些寫好就不容易了。
比如我昨天寫了個補全三位數的功能:int i;string s;
這是前提,然後是if(i/10==0) { s="00"+i; } else if(i/100==0) { s="0"+i; }能看懂吧?做的就是判斷一下原來是幾位數的,一位數的就在前面補兩個0,變成00x,兩位數就變成0xy,三位數就還是xyz。
被boss看到我這渣代碼以後他默默的寫了一句:s = i.ToString("d3");這就是差距1!!!代碼性能很重要。C#沒學好就我這樣的。執行一次的代碼被我寫的至少要計算一次,再判斷一次,再執行一次。而我這個代碼是包在for循環裡面的。。。不過這個都只是經驗問題,有人帶的話,不用太過擔心。再來說說差距2。
要做一個控制視頻播放速度的效果。Unity自帶的函數里沒有,相關的插件也無效,怎麼辦?我只想到了把視頻貼到模型上作為動畫播放,控制視頻播放速度就變成控制動畫速度。boss除了這個還想到了好幾個辦法:把視頻搞成圖片,一幀一幀貼上去,通過更改幀數率來改視頻速度。把視頻播放器改成Unity插件,然後直接用插件實現。視頻播放放在安卓里實現,用unity調用安卓。。。我因為常用3DMAX和unity所以思路都是從這兩款軟體中我會用的功能出發的。人家才不管你用什麼軟體啊,能實現最終的效果就好。先找到理論上能實現效果的路再說。先確定是從北京直接到福州,還是從北京到廈門再到福州?至於是動車飛機還是輪船不重要啊!要是腦子裡想著福州只有輪船,於是決定先從北京到台灣,再從台灣坐輪船到福州。。。(不要糾結福州是不是真的只有輪船,這只是打個比方)方法不會沒關係,思路先想清楚更重要!!!遲了,我速度的說一下差距3吧~
剛來工作的時候,boss花了一下午給我理清楚思路寸:先查詢資料庫,然後把記錄存到XML上,再web上調用這個XML。思路懂了沒?懂了。那會做么?不會。(這裡該有張圖)哪裡不會做?/(ㄒoㄒ)/~~哪裡都不會,怎麼查詢資料庫並顯示?怎麼把選中的記錄導出xml?導出的xml怎麼連接上webservice?後來boss又耐著性子給我講了怎麼連接資料庫,怎麼查詢,怎麼把查到的記錄在窗體顯示。。。現在,boss就一句:這個資源太大了,不要放在項目裡面,獨立出來。(⊙o⊙)於是我就苦思冥想:要把資源獨立出來的話,就得獲取路徑動態讀取。路徑可以用個string。而且不在項目內部了,讀取文件的時候還得先轉成位元組流,然後再賦值。文件夾里不止一個文件,那還得建個數組來存放。嗯,先測試一下單個文件的外部獲取,可以的話再換成文件夾。。。
至於怎麼讀取路徑里的文件這種問題,聯網查一下就好。所以說,方法不會沒關係,前提是能找的到!!!好吧,一點都不速度。。。還有差距4,差距5...有些差距可以通過工作時間長了,經驗豐富自動補足。有些差距則必須在平時有意識的補,因為它並不會隨著時間的流逝而減少的。
語文不好,說的有點亂,請見諒。
(*@ο@*) 哇~我的第一篇長答耶一年unity3d經驗開發者比第一次進公司工作的開發者多的知識:
1.對unity3d的操作熟悉程度2.對各種組件的認識以及組織運用3.對c#語言的熟悉與運用
4.你會知道你還需要學什麼,什麼是你不懂的一年unity3d經驗開發者比第一次進公司工作的開發者多的經驗:
1.當你遇到困難你會如何去發現並解決問題的思維和方式
2.熟悉遊戲基本的開發流程一年unity3d經驗開發者比第一次進公司工作的開發者多的技巧:
1.腳本跟組件之間工作效率的提高2.腳本的運行效率和組織編寫技巧推薦閱讀:
※#每天一個小目標#Unity技術分享(六)
※從《城堡戰爭》到《皇室戰爭》看如何從war3自定義地圖開發手游新玩法
※Unity載入模塊深度解析之動畫片段
※UWA DAY 2017開啟報名