實驗目的:
實現自動尋敵炮塔骨架網格定義,旋轉。
創建一個全新的工程(配置好後,重啓VS)
在Editor中加入包,方便Editor使用。
默認屬性:defaultproperties
定義用到的Mesh
DoRotation測試:
Tick函數
function Tick(float Delta)
{
localFloat currDot,thisDot;
localUTPawn P;
localBool bHasTarget;
WorldInfo.Game.Broadcast(self,Delta@"Tick exc");
`log(Delta$"Tick exc");
Delta默認爲0.04左右,Tick函數每0.04秒運行一次,UDN文檔資料說Tick是每幀執行,也有人說Delta默認是1秒。
調試Log輸出字符和變量,$直接串接,@ 是加空格後串接
遍歷數據
for,foreach,iterator的用法和區別
相同點: 三個都可以用來遍歷數組和集合
不同點:1.形式差別
for的形式是
for(int i=0;i<arr.size();i++){...}
foreach的形式是
for(int i:arr){...}
iterator的形式是
Iterator it =arr.iterator();
while(it.hasNext()){object o =it.next(); ...}
2.條件差別
for需要知道集合或數組的大小,而且需要是有序的,不然無法遍歷;
foreach和iterator都不需要知道集合或數組的大小,他們都是得到集合內的每個元素然後進行處理;
3.多態差別
for和foreach都需要先知道集合的類型,甚至是集合內元素的類型,即需要訪問內部的成員,不能實現態;
iterator是一個接口類型,他不關心集合或者數組的類型,而且他還能隨時修改和刪除集合的元素,舉個例 子:public void display(Iterator<object> it){
while(it.hasNext()){
system.out.print(it.next()+"");
}
}
當我們需要遍歷不同的集合時,我們只需要傳遞集合的iterator(如arr.iterator())看懂了吧,這就 是iterator的好處,他不包含任何有關他所遍歷的序列的類型信息,能夠將遍歷序列的操作與序列底層的 結構分離。迭代器統一了對容器的訪問方式。這也是接口的解耦的最好體現。
4.用法差別
for循環一般用來處理比較簡單的有序的,可預知大小的集合或數組
foreach可用於遍歷任何集合或數組,而且操作簡單易懂,他唯一的不好就是需要了解集合內部類型
iterator是最強大的,他可以隨時修改或者刪除集合內部的元素,並且是在不需要知道元素和集合的類 型的情況下進行的(原因可參考第三點:多態差別),當你需要對不同的容器實現同樣的遍歷方式時,迭代器是最好的選擇!
轉載請註明出處:http://blog.csdn.net/iamkila