日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

unity自己遇到的一些bug与解决方法的记录

發布時間:2023/12/18 编程问答 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 unity自己遇到的一些bug与解决方法的记录 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

場景跳轉后,材質丟失


原因:因為沒有光照,加入光照即可

無法調用系統的函數


(實際上寫的時候發現不能調用這個api,原因是在于自己命名了一個Camera的腳本這樣會覆蓋系統自帶的。)

一些經驗總結

  • 寫完某段功能時要在旁邊標上注釋
  • 不要在update里放那么多東西,封裝成函數再放在update里調用,養成好習慣。

因為考研很長時間沒碰unity再碰unity時的感受:
2022.1.21做gamejam的2d平臺跑酷游戲中得到的經驗教訓:

  • 簡單的2d平臺跑酷游戲好像看似很簡單,但是我卻眼高手低,以為這些很簡單都很好實現。但是事實上是,雖然以前自己做過這些東西,但全都是按照教程去跟著一步一步照貓畫虎去做的,做完之后自己并沒有拋開教程去復刻一遍,于是導致了這樣的情況:

  • 每一行代碼大概都能看懂在做什么,但是連起來,為什么這么做的邏輯,可能無法完全理解

  • 有些東西你拋開教程自己去做然后會發現說,自己忘了一些細節。比如實現跳躍,需要有幾個關鍵點:①不能讓玩家在空中連續跳躍多次 ②要實現跳躍后,離地的判斷。 ③普通跳躍與蓄力跳躍

  • 兩個腳本中的update和fixedupdate存在互相獲取值變量時會出現的影響

    A腳本中的變量如果是在fixedupdate函數中更新的,而在B腳本中,我們在update函數中去獲取A腳本的這個update函數的變量的值,那么此時,兩個函數的獲取速度會有差異。:

    這可能會造成意想不到的影響。

    獲取玩家輸入使用update而不是fixedupdate

    使用getkeydown的話,接受玩家的輸入不能放在fixedupdate中,否則可能會丟失一瞬間的輸入。

    粗心的錯誤

    聲明某個變量,并在start函數中初始化時,不小心寫成了這樣的形式:

    這樣會導致最終無法成功初始化

    對象引用對于非靜態的字段,方法或屬性是必須的

    犯的錯誤如下:首先在類中聲明了一個非靜態變量

    但是此處我卻在靜態成員函數中聲明它:

    這里就犯了一個很明顯的錯誤,對于靜態成員函數,是不能為非靜態成員變量初始化的,也不能調用非靜態成員方法。

    因為靜態成員函數屬于整個類,在類實例化對象之前就已經分配空間了,而類的非靜態成員必須在類實例化對象后才有內存空間,所以這個調用就會出錯,

    類里面的方法有兩種表現:一種是直接可以來用的,還有一種是必須實例化以后才能使用的。前者要求在方法生明的時候必須加上static關鍵字。

    簡單來說引發這個bug的原因就是調用類里面的非靜態方法、成員變量所導致的。

    物體跳躍時移動卡墻的問題


    此處使用的是改變物體的速度,使其移動的。
    一旦鎖住其z的旋轉,會導致其在移動時,會需要卡住z的旋轉角度,從而導致卡墻。

    解決方法:
    給物體添加光滑的物理材質,給玩家也添加光滑的物理材質。

    人物走路遇到很小的坡走不動

    因為設置成剛體又鎖住了旋轉導致走不過去,可以將人物的立方體的碰撞箱改為膠囊體即可。

    善用微軟官方英文文檔解決錯誤

    https://docs.microsoft.com/en-us/dotnet/csharp/language-reference

    可以在上面搜索c#的文檔

    子類希望隱藏父類的變量需加new關鍵字

    如圖所示 父類中有一模一樣的變量名,如果希望隱藏父類的關鍵名需加new關鍵字。

    導入包時,物體的層級消失

    如下所示

    是因為自己做包的人自己設置了層級,但是導出包后再導入的人則會丟失該層級,此處就需要自己手動設置層級。

    無法在人物靜止時賦予agent速度

    想通過直接設置agent的速度來模擬擊退效果,結果發現當人物處于靜止狀態時,agent的速度賦值不上的問題。但是當人物處于移動狀態時,卻能正常賦值。

    解決方法:禁用Auto Braking即可。

    總結

    以上是生活随笔為你收集整理的unity自己遇到的一些bug与解决方法的记录的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。