unity 接觸一個月的感受和心得
unity scrollview 遇到的問題
一個scrollview作為翻頁,這樣的效果調整。
一頁上面有三個scrollview,這三個scrollview上的items不受下層整個頁面的scrollview的裁剪,導致滾動的時候,上層items會從頁面外面飛入。這個問題我還沒有解決,這個問題只有第二次以及以後打開界面才會出現,第一次打開不會出現,
所以我斷定是我在第一次關閉界面的時候有些內容沒有釋放導致的。
現在采用迂回戰術,關閉的時候不關閉,而是隱藏,這樣就不會出現這個問題了。
但是根本原因,後續有空再研究。
2.我翻頁使用scroll,反復的調整參數,都不能達到好的效果。
後來改為Spring.Panel.Begin(xxx),效果完美。
3.childcenter要謹慎使用,一般一次顯示一格的才使用,一次可以顯示多格的不要隨便加,不然容易出問題。
4.今天替換美術拿過來的資源,居然和策劃文檔的功能都不一樣。憂傷,還增加了功能。
關鍵是遇見一個大坑。大概是上午的時候,開始學習合成atlas圖集,旁邊的同事教我用ngui->open->atlas maker 制作了圖集,在我的電腦商運行完美。提交到svn,再被其他同事update之後,圖集不能夠顯示。
這個坑真的是大坑,關鍵是我沒有unity和圖集相關的基礎,導致我遇見問題的時候不知所措,找人解決也不知道是什麽問題,後來大概7點多的時候,組長說是圖集的問題。讓用TexturePacker重新生成一份,我本地安裝這個工具卻出現dll找不到的錯誤,於是放棄,先讓其他人生成給我用吧,解決問題先。。。
可是給我之後還是不能用。
後來就不知道什麽原因了,大概8點多,客戶端的人都走完了,留我一個人在這裏。今天是大周星期五。我下決心一定要解決的突然我發現我電腦有安裝TexturePacker,然後我自己生成了之後就可以了。 其他電腦也可以了。。。 其中還嘗試了其他方法,看是不是其他問題,這些過程相當的有趣,所以找bug定位精準太重要了。。。這一點我在python上感覺到了優勢。我在前公司的時候,組內大都是一年兩年的新人,我是三年的老人,我看過《python源碼剖析》,他們沒看過。他們提出的python問題我基本都能夠解答,並且那段時間給他們普及了很多python知識。
所以,理解原理真的是太重要了。
公司用的unity是版本是5.4.4.f1,ngui版本是3.10.1
visual studio:vs2015
vstounity:關聯vs到unity 使得vs可以調試unity程序。
ngui3.10.1的下載地址
http://download.csdn.net/download/wxk_1054433720/9637687
先刪掉原來工程目錄下的ngui文件夾再import
紋理圖片導入到unity中大小變小了,原來是被unity壓縮了,選中紋理圖片在Inspector中操作,2DSprite,然後勾選Generate mip maps,這樣紋理就不能夠被壓縮了。
制作的界面和效果圖不一樣,前期是眼睛對著看,浪費了大量寶貴時間,現在改為放一張圖片在下面,然後調整坐標。
美術給的資源都說按照效果圖來,差評,理科生對這種不敏感,建議實際的坐標值,顏色值,文字大小數字標出來。
UIHelper.SetTexture,不用每個地方都去實現一下。
慎用居中插件,center inchild,各種惡心,還有各種毛病。
不能夠用texture在unity編輯器中,打包回出現問題。
速度一定要快,給一個任務一定要按時完成,這就是效率。
什麽地方可以快速熟悉unity編輯器的各種功能?
預制體的類.gameobject 報錯:要實例化的對象為null。
這個原因是:
1.預制體的類是否名字和預制體一樣;
2.如果一樣,再看文件夾下面是否有對應的預制體,因為在unity編輯器中的Hierarchy中有的是在unity編輯器的內存中的,並不代表存在於電腦的硬盤中,所以,檢查文件夾,如果沒有就將預制體拖入文件夾中。
第二個任務是商城系統,簡單說就是購買東西的一個界面,有n個標簽,根據標簽加載對應的物品,
當然是根據選擇不同的標簽,向服務器發送對應的標簽數據,服務器返回對應的數據列表,
我拿到這些數據id之後,根據當前選中標簽,或者是服務器發過來的itemtype,進行相應的設置,顯示不同的內容。將需要顯示的物品顯示在一個scrollview中即可。
這就是顯示部分。
另外一部分是對這些物品進行操作。
比如說我要查看物品的詳情,或者說是購買物品。
物品顯示分為物品的區域範圍,這個範圍點擊是可以查看詳情的,在詳情裏面可能會有購買的操作,或者是其他的操作。
另外物品區域的下方還有一個顯示價格的按鈕,點擊可進行購買。
這種點擊操作基本都是向服務器發送請求得到數據,或者根據id去讀取本地的表中的數據用於顯示。
這裏的id是怎麽得到的呢?我怎麽知道我點擊的是那個按鈕呢?對應的id是多少呢?
我的做法是對於每一個物品,我在設置顯示信息的時候同事對象保存了他的id,點擊的時候在響應函數裏面獲取本對象的mId就可以知道點擊的是哪一個物品。
然後拿到這個id之後,我就可以獲取到需要顯示的數據了。
還有一個問題是一個頁面如何多重使用呢?即頁面復用的問題,我的做法是:
如果是可以根據頁面標簽來進行分類的,那麽 以頁面標簽進行分類,進行顯示不同的內容。
如果不能通過頁面標簽來進行分類的,我就通過服務器發過來的id去對應的表裏面找type,找到對應類型,然後根據類型來確定具體應該顯示什麽內容。
這樣就能夠很好的處理顯示的內容了。
另外,這個商城系統裏面還有一個抽獎的內容,這個浪費了我挺多時間的,大概一天半吧,現在還沒有做完整。
明天繼續去加班,把事情做完,自己測試幾遍,現在這個公司程序員不僅僅要寫代碼,還要把美術給的界面資源拼接成效果圖,這個過程極其惡心,然後還要負責測試。這個也是我覺得不爽的地方。十分懷念原來那種,不需要管界面,策劃做好,我只需要寫代碼,寫好功能之後直接丟給策劃,策劃安排測試人員一路跟著測bug,然後修bug,然後再測,直到沒有bug,那種生活太奢侈了。
不過現在更能夠鍛煉人,仔細想一想,遊戲開發,過來過去不就是那幾個系統麽?至少通用的系統在每個遊戲裏面都要用到的,所以把這些模塊做得滾瓜爛熟之後,我想以後開發效率就會高了吧,嗯嗯,加油吧。新進入一行一定會有一個陣痛期的。
做遊戲就是要速度快,給一個任務,很快就做完了,然後代碼質量也高,bug也少,那就是非常優秀的程序員了。現在我還要向這個方向努力??。
unity 接觸一個月的感受和心得