Unity中的兩種static

2021-08-19 07:36:40 字數 1841 閱讀 7464

unity3d中的每乙個物體在inspector中的static的作用

當選中時,這個object是在程式執行時是靜止不變的,確保不被改變,一般多用於場景中靜止的物體。

在unity內部會有不少操作來檢測該object是否為static的,

對於static的物體進行一些特殊處理,

在rendering優化時會根據是否為static來進行不同的優化,在lightmaping時(光照渲染烘焙),會根據是否是static來進行光照等等。

1.     首先解釋一下static是什麼意思?

static是靜態的意思,既然是靜態,就是不變的,而不變就是他不會因為類中例項化物件的不同而不同,它在類中永遠只有乙份,就像中國人有許多,但我們只有乙個國家中國。

2.由static修飾的歸屬問題

由static修飾的不管是變數還是方法,都屬於類直接管理,所以類中所有的方法(這裡方法包括靜態和例項)都可以呼叫他們,就像公司裡的印表機,它是屬於公司的,公司裡的人員(例項)都可以用它。

例如:class program

void aa()

}3.static修飾的範圍

①static可以修飾類,使類成為靜態類。這樣在此類中只能定義靜態的方法和靜態的變數。

②static可以修飾變數,這個變數只能是成員變數,不能是區域性的。

既不能修飾方法體中的變數,以及形式引數。

③static可以修飾方法,main方法必須用static修飾,因為它是與程式共存亡的,是程式的入口和結束的大門。

例如:class test

}static class test

//正確

void bb() {}  //錯誤,靜態類不能定義例項方法

}4.static修飾的呼叫

①在本類裡呼叫由static修飾的方法和變數,可以直接用

class a

static void bb()

}②在外類中呼叫static修飾的方法和變數,類名。方法名

或類名。變數名

class program

}class test  

其他解釋:

class program

static program()

static

void main(string args)

}

特點:

e、靜態資料成員,主要用在類的所有例項都擁有的屬性上。比如,對於乙個存款類,帳號相對於每個例項都是不同的,但每個例項的利息是相同的。所以,應該把利息設為存款類的靜態資料成員。這有兩個好處,第一,不管定義多少個存款類物件,利息資料成員都共享分配在全域性區的記憶體,所以節省存貯空間。第二,一旦利息需要改變時,只要改變一次,則所有存款類物件的利息全改變過來了,因為它們實際上是共用乙個東西。

特點:   a、靜態成員函式與類相聯絡,不與類的物件相聯絡。   b、靜態成員函式不能訪問非靜態資料成員。原因很簡單,非靜態資料成員屬於特定的類例項。 

作用:   主要用於對靜態資料成員的操作。

class

program

static

void main(string args)

", i);

console.writeline("j=", new program().j);

console.read();

}}

console.writeline("i=", i);
i=0

j=1

C 的static有兩種用法

靜態全域性變數 在全域性變數前,加上關鍵字static,該變數就被定義成為乙個靜態全域性變數。我們先舉乙個靜態全域性變數的例子,如下 example 1 include void fn static int n 定義靜態全域性變數 void main void fn 靜態全域性變數有以下特點 靜態變...

unity中使用httppost的兩種方式

最近需要在unity中使用http post的方式傳遞訊息,所以做一下記錄吧 1 unity自己的www 方式 因為我傳遞的訊息是json字串所以前期的工作就是 拼字串然後通過litjson或者newtonsoft.json等庫轉換成byte陣列然後,直接上 吧 ienumerator sendto...

Unity開發 persp和iso兩種模式的區別

persp相當於是透視視野 在persp模式下,物體在scene介面上所呈現的畫面是給人一種距離攝像頭近的物體顯示的大,距離攝像頭遠的物體顯示的小。iso相當於是平行視野 在iso模式下,不論物體距離攝像頭遠近都給人的感覺是一樣大的。在game介面,這兩種模式給人呈現的效果是一樣的,都是距離攝像頭近...