2016-11-18(2)(Unity相关)---脚本基础
利用deltaTme進(jìn)行移動(dòng) position+= new vector3(Time.deltaTime * speed ,0.f,0.0f) ; ?對象的移動(dòng)速度按秒計(jì)。
-------------------------------------------數(shù)據(jù)類型(兩大類)-------------------------------------------
值類型和引用類型
值類型 int float double char bool structs(復(fù)合變量類型)--Vector3,Quaternion(四元數(shù))
引用類型 對象中的class--TransFrom,GameObject
區(qū)別:值類型里面裝的是數(shù)值
? ? 引用類型里面裝的是數(shù)值的地址
如果值類型發(fā)生了變化 只會影響那一個(gè)變量
如果引用類型發(fā)生了變化 那所有只想那塊地址的引用都會發(fā)生變化
?
-------------------------------------------Class-------------------------------------------
類名和腳本名是一致的 當(dāng)修改其中一個(gè)名字時(shí)候另一個(gè)也需要修改(遇到過這樣的問題 賦值了一個(gè)腳本名字叫 Green 因?yàn)橥瑫r(shí)存在了兩個(gè)Green 將其中一個(gè)改成了Red 但是沒有改變類名 出錯(cuò)了)
腳本分離 一個(gè)腳本處理單一的功能
又說了說構(gòu)造之類的 簡單的東西 ?
-------------------------------------------InsTantiate-------------------------------------------?
InsTantiate 初始化函數(shù) 里面接受一個(gè)參數(shù) ?就是我們要進(jìn)行clone 的prefab
但是這樣做 預(yù)制件會在默認(rèn)的位置實(shí)例化 0,0,0
可以傳入三個(gè)參數(shù) 第一個(gè)參數(shù)式預(yù)制體 第二個(gè)參數(shù)是位置position 第三個(gè)參數(shù)是旋轉(zhuǎn)rotation?
例: 在指定位置上面 生成火箭(火箭筒的槍口位置) ?在火箭筒上面創(chuàng)建一個(gè)空 對象 然后把這個(gè)對象拽進(jìn)腳本中 然后位置就固定了。
通過?RigiBody m_body;? m_body =?InsTantiate(,,) as RigiBody 將生成的實(shí)例當(dāng)成一個(gè) 剛體。
然后可以給這個(gè)剛體添加 力之類的。
預(yù)制體 創(chuàng)建了 之后 要 添加副本及時(shí)刪除。?
?
-------------------------------------------數(shù)組-------------------------------------------?
type[] m_arry;? //聲明一個(gè)type類型的數(shù)組
public GameObject[] objects;? //一個(gè)public 類型的 游戲?qū)ο髷?shù)組 可以在面板中 修改size大小以確定拖入多少個(gè)游戲?qū)ο蟆?/p>
GameObject.FindGameObjectWithTag();? // 通過tag 獲取到所有的游戲?qū)ο?然后返回值 是游戲?qū)ο蟮臄?shù)組 前提是要將游戲?qū)ο?弄個(gè)相同名字的tag
-------------------------------------------延時(shí)調(diào)用-------------------------------------------
InVoke()函數(shù) 可以讓函數(shù)在指定的時(shí)間之后執(zhí)行 ?對調(diào)用方法的時(shí)間限制 有要求的時(shí)候可以用
例: 在Start中調(diào)用InVoke()方法 里面有兩個(gè)參數(shù) 一個(gè)參數(shù)是要調(diào)用的方法名稱 另一個(gè)參數(shù)是延時(shí)多久以后調(diào)用此函數(shù)。
void ?Start(){
InVoke("MyFunc",2);
}
public void MyFunc(){
Instantiate(m_object,position,);?
}
//就會延時(shí) 初始化 ?這個(gè) 游戲?qū)ο罅?
//只有不包含參數(shù)而且返回值的類型為Void才能 用Invote
InvoteReapting() //重復(fù)的調(diào)用 這個(gè) 延遲函數(shù)
cancelInvoke() 停止延遲調(diào)用 如果想確定停止 某一個(gè)延遲調(diào)用函數(shù) 那么在參數(shù)里面就要傳入被調(diào)用函數(shù)的名稱。
?
枚舉 ?依然還是那個(gè) 枚舉 用法 語法都差不多?
//枚舉放類外 類內(nèi)?
//枚舉可以指定任意整形 例如 ?enum DIRECTION :short{,,,};
?
Switch 依然是那個(gè)Switch 沒變
轉(zhuǎn)載于:https://www.cnblogs.com/liangzhiming/p/6078367.html
新人創(chuàng)作打卡挑戰(zhàn)賽發(fā)博客就能抽獎(jiǎng)!定制產(chǎn)品紅包拿不停!總結(jié)
以上是生活随笔為你收集整理的2016-11-18(2)(Unity相关)---脚本基础的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 如何使用Native Messaging
- 下一篇: void*和void类型