Babybus-u3d技術交流-影子分享
1注盈、幀率
IOS默認幀率為60..并且規(guī)定我們手動控制幀率的時候幀率要是能被60整除的數(shù)或者是60的倍數(shù)(例: 30,15)条舔。如果不符合上面的要求則控幀無效,默認60.
同時設置幀率的時候要在Quality下的Other—>VSync Count設置為Don't Sync
在全局的腳本Awake()中加入代碼:
//****************targetFrameRate為int型(IOS為60的倍數(shù)或者被60整除的數(shù)怨咪,一般設置為30屋剑。安卓上沒有限制,但是鑒于安卓機子比較low 建議設成35到40)************************//
Application.targetFrameRate = targetFrameRate;
2诗眨、協(xié)程
開啟協(xié)程StartCoroutine()
參數(shù)有兩種形式:
StartCoroutine(string methodName); —— 參數(shù)為字符串類型的方法名
StartCoroutine(IEnumerator method); —— 參數(shù)為IEnumerator類型的方法
傳遞字符串的只能傳遞一個方法參數(shù)而使用IEnumerator的沒有限制
停止協(xié)程StopCoroutine()和StopAllCoroutines()
StopCoroutine() —— 只能停止以字符串為參數(shù)的協(xié)程
StopAllCoroutines() —— 可以停止兩種參數(shù)形式的協(xié)程
注意:StopCoroutine和StopAllCoroutines只能對應腳本上的協(xié)程唉匾,不能停止別的腳本內(nèi)的協(xié)程。如果要在A腳本中停止B腳本的協(xié)程匠楚,要在B腳本中封裝一個公共的停止協(xié)程方法給A調(diào)用
3巍膘、防止在UI上射線穿透
在主相機發(fā)射線代碼之前加上,判斷當前是否touch在UI上:
if(UICamera.isOverUI){
return;
}
4芋簿、Ray
Ray.origin:射線的起點(和攝像機的位置有關)峡懈。
Ray.origin.x:物體位于相機的正前方的時候, Ray.origin.x為0
Ray.origin.y: 物體的高度和相機在同一水平線上的時候与斤, Ray.origin.y為0
Ray.origin.z: 攝像機Z軸的點到(0,0,0)點的距離加上去攝像機進切面的大小
Ray.direction:射線的方向肪康。是一個單位向量(長度為1)。如果你指定一個非單位長度的向量撩穿,它將被規(guī)范化磷支。
Ray.GetPoint():沿著射線,返回距離單位內(nèi)的一個點食寡。
5雾狈、重力感應
參考下面兩篇文章:
[http://bbs.9ria.com/thread-223825-1-1.html
[http://bbs.9ria.com/thread-223831-1-1.html
6、使用Line Renderer組件畫星星彈簧
void DrawTanHuang(){
startLightPos = transform.position;
startPoint = fixedPos.position + new Vector3(0.02f,0,0);//固定起始點
endPoint = startLightPos + new Vector3(0.02f,0.06,0);//實時更新結束點
lineRenderer.SetPosition(0,startPoint);//設置起始點
lineRenderer.SetPosition(1,endPoint);//設置結束點
}
通過Spring Joint組件添加彈簧效果..實現(xiàn)星星燈回彈