Unity3d開發之對Public的一些個人說法
在開發專案中,我們經常需要公開類內部的變數讓外部呼叫。c#標準寫法是讓我宣告私有欄位然後生成對應的公共屬性供外部呼叫。保證程式碼安全。而我們在開發unity專案時,因為為了省時或者可以在面板賦值,我們經常直接在類內部宣告公開的欄位。如下:
public int num=1;
unity的獨特之處時,在我們編寫完程式碼儲存後,unity編譯器自動將欄位的值初始化到面板上儲存下來。但是當我們在腳本里更改num=2時,unity面板並不更新。也就是當我們執行程式的時候,num還是為1.如果我們不去看面板我們還以為num=2.這就造成程式碼的bug。尤其是專案著急的時候,總是會出現這種不如意的小毛病,你還焦頭爛額但是就是找不到原因。所以,有以下建議:
- 當我們想宣告的是引用型別比如GameObject,Transform我們可以使用Public來加快程式碼的開發。
- 當我們宣告值型別,並且希望被外界呼叫,儘量使用屬性。如果一定想要在面板實時觀看值得變化,宣告Public後建議在Start函式裡進行數值的初始化更改。
別問我為什麼會想這個。昨天的專案就因為這個耽誤了我一個多小時。當時專案著急加上長時間工作,效率極其低下,再加上程式碼的不安全性,造成了這個小的bug。
相關推薦
Unity3d開發之對Public的一些個人說法
在開發專案中,我們經常需要公開類內部的變數讓外部呼叫。c#標準寫法是讓我宣告私有欄位然後生成對應的公共屬性供外部呼叫。保證程式碼安全。而我們在開發unity專案時,因為為了省時或者可以在面板賦值,我們經常直接在類內部宣告公開的欄位。如下: public int num=1; unity的
Unity3d開發之對Quaternion的使用
上週找到了新公司。這週二來上班。可怕的是我剛去的第二天下午四點領導通知我做一個VRdemo,要求第二天交。我勒個擦。我現在對裝置還沒熟悉呢。連sdk都沒下載而且距離上一次開發vr是在快兩年之前了。屬實讓我措手不及。沒錯,按劇本走,加班到凌晨。累屁了。下面記錄下我在開發專案中遇到對Quaterni
Unity3D開發之邊緣檢測Sobel運算元的一些個人觀點
對於廣大的shader愛好者應該對於邊緣檢測很熟悉。在看完馮樂樂的Unity shader入門精要裡邊緣檢測那段,有一些個人的疑惑,於是上網百度搜索一些卷積概念以及部落格上對於邊緣檢測的講解,發現和馮樂樂講的大致相同,下面說下我的疑惑以及我的見解。標準的邊緣檢測shade
EAS開發之對已有單據的增刪查改功能開發
文件 過去 開發 cor 文件中 傳輸 代碼 factory 列表 一:對於一個已經在其他業務部門定義好的業務單元,在另一個部門新增該業務單元的增刪查改操作,應該怎麽做? 由於業務單元已經定義過了,所以我們不能再進行建模、定義單據ui。而是要開發出一個單據列表展
Unity3D開發之c#主導呼叫安卓功能
公司一直沒有盈利專案,我們3d組要解散。我也一直在找工作。找工作真的太糟心了。我想進的公司都不要我,要我的公司我都不太滿意。其實我一直是想去想去做手遊的。唉,有些公司連面試的機會都不給。好生氣 哈哈。最近一直在等訊息,我一個博士師傅昨天讓我去做模擬方向。我也在糾結到底該怎麼選
web開發中webpack的一些個人心得
一.webpack是什麼? webpack是一個現代js應用程式的靜態模組打包器; 它的功能是:分析專案結構,找到js模組以及其他一些瀏覽器不能直接執行的拓展語言(sass,TypeScript,less),並將它們打包為合適的格式以供瀏覽器使用。 構建: 就
Kinect for Unity3D開發 之 手勢/姿勢(Gesture)識別基礎知識
手勢/姿勢識別: 有兩種方法可以為Unity專案新增手勢檢測和手勢識別功能。 1. KinectManager,示例場景中MainCamera的一個元件。 2. 以程式設計方式指定使用者特定的姿勢。需要實現KinectGestures.GestureListenerInterface。Kine
iOS開發之關於CocoaPods一些基本錯誤
1.在我們替換ruby源時提示: bogon:~ Simona $ gem sources -a http://gems.ruby-china.org/ Error fetching http://gems.ruby-china.org/: SSL_conne
Unity3D開發之設定Animator播放動畫片段結束後事件設定
最近專案需求做一個效果動畫,在unity自己編輯的關於Transfrom+Color Alpha變化的動畫。動畫編輯好後在Animator面板編輯動畫切換條件。初始狀態,動畫進入一個空狀態,當我們要展示效果的時候,就設定他的引數值Score=True,讓他切換動畫。切換完後再切回空狀態並設定Sc
Unity3D開發之編譯器Inspector面板擴充套件開發
沒有系統性的研究unity編譯器的擴充套件開發,所以就是遇到什麼需求就去研究什麼需求。之前寫過一兩次,後來沒怎麼用就忘記了。這次開發專案又遇到同樣需求,我百度了半天好容易找到答案。心想這次還是記錄下來,下次可以直接回顧掌握了。 一。最近在做模擬教學的內容。涉及到步驟操作檢測。比如我們不開啟總
Unity3D開發之HTCVIVE初始化頭盔Transform資訊
我們在開發VR專案時,會遇到這個問題。就是在不確定玩家初始位置以及初始角度方向的時候,我們希望使用者在進入場景的第一時間面對的是我們設定好的方向及位置。這個時候就需要我們使用指令碼來提前控制設定。 下面是HTCvive為例:Vive提供的預製體如下: CameraRig是最外層的物
Unity3D開發之安卓JDK安裝配置
一.官網下載JDK. 二:安裝JDK和JRE。注意在安裝之前右鍵JDK的屬性裡數字簽名。只有數字簽名正常JDK才可以被正確安裝。安裝就是下一步下一步。JDK和jre不可以安裝在同一個資料夾裡。可以並列在同一個目錄下。 三:配置環境變數。右鍵我的電腦,選擇屬性,高階系統選項,環境變數
Unity3D開發之基於委託的訊息框架開發
我們在開發專案的時候會發現,我們經常要在不同模組不同類之間呼叫函式。比如:我們在點選場景一個物體後,就需要對UI介面做一定的變化。通常最簡單的方式是我們直接在面板繫結持有對更改介面的函式的物件。可是如果專案比較大,類比較多的情況下,我們會發現專案變得異常混亂。更改一點需求可能會牽一髮而動全身。其
Unity3D開發之自制座標軸(二)
我在上篇部落格寫出瞭如何用程式碼建立一個我們可以任意控制頂點得圓柱體。本片部落格著重記錄如何在空間建立類似unity可以控制物體的座標軸。由於我們要控制圓柱體的長度,所以我們設計的座標軸是兩個方塊在圓柱體的兩端。效果圖如下:  
UnityEditor下檔案操作方法彙總(Unity3D開發之二十四)
最近經常需要些一個編譯工作指令碼,經常操作一個檔案。下面是一個彙總了的檔案操作方法。 using UnityEngine; #if UNITY_EDITOR using UnityEditor; using System; using System.IO
Unity3D開發之更改材質的渲染模式
在工業視覺化的專案中,需要用到對某個部件的特寫,如果直接隱藏其他的模型會感覺突兀,所以我們會使用設定其他模型為半透明模式。Unity5.0版本出現的新版標準材質可以讓我們直接在面板上更改渲染模式。不過程式碼來更改渲染模式確實很麻煩,要改的引數很多。 public enum R
自動生成材質Material(Unity3D開發之十九)
專案中,有時候匯入一些資源時候,需要對應建立材質球,如果每次自己動手建立,還是挺麻煩的,下面是如何匯入資源時候自動建立材質球。 using UnityEngine; using System.Co
Unity3D開發之網路遊戲中伺服器端的架構設計
最近在研究網路遊戲開發,感覺結構很好玩,所以就將自己學到了解到的記錄下來。部落格前幾篇的Socket通訊講的就是網路遊戲部分Socket的基本結構。上一篇的對MySql使用就是伺服器對資料庫的連線使用。今天要介紹的就是遊戲伺服器的設計架構以及一些核心程式碼。 通
分別修改Cube每個面的貼圖UV(Unity3D開發之十八)
今天專案中需要修改一個Cube中每個面的貼圖UV,也就是貼圖中有多個矩形貼圖,需要程式從貼圖中讀取一部分賦值給Cube每個面。 這裡已經有人實現了。 CustomUVS.cs using UnityEngine; using System.Collec
Unity3D開發之設定UGUI Text首行縮排
0x00 方法一private Text text; // Use this for initialization void Start () { text = GetCo