記錄在學習《unity 3.x 遊戲開發 經典教材》時遇到的各種問題與筆記
1. 初始不能降低terrain的高度,需要到terrain設定的第二個按鈕中將height從0調高
(注意:最右邊齒輪按鈕裡的terrain height是整個地形的最大高度,左圖是當前筆刷繪製的最大高度)
2. sendmessage() 可以直接呼叫物體中的乙個函式,而不在乎函式屬於哪個指令碼
// ① 書中p1513. 碰撞檢測currentdoor.sendmessage("doorcheck");
//此處,sendmessage()函式檢查在currentdoor變數所儲存的物體的所有指令碼中是否存在乙個名為 doorcheck()的函式,如果找到了,就呼叫該函式
// ② 官方示例
// every script attached to the game object
oncontrollercolliderhit() 這個函式的指令碼不能隨便繫結,要繫結到有角色控制器的物件上,比如player
charactercontroller.oncontrollercolliderhit 控制碰撞器碰撞
缺陷:◇ **被放到玩家物體中,隨著不斷完善**,整個指令碼會變得越來越龐大,難以維護
◇ 使用拓展後的碰撞器來啟用門狀態的改變,這樣玩家會突然撞到一面無形的牆,從而突然停下移動的腳步,這一點影響了遊戲可玩性
4. collidion trigger 碰撞 和 觸發
要使用trigger檢測物體進入,則需要勾選is trigger選項。否則物體就會被擋在碰撞區外,無法進入。
碰撞檢測觸發器trigger 有別於碰撞檢測器 collision,其可以不受物理效果影響,一些可穿透區域的碰撞檢測,可以使用trigger來進行碰撞檢測。
trigger例子:
// 進入碰撞區域,觸發canthrow = true跟 ontriggerenter() 函式不同,oncollisionenter() 函式處理的是原型碰撞器之間的普通碰撞,也就是說,沒有角色控制器碰撞器和處於觸發模式的碰撞器。void ontriggerenter(collider col)
}// 離開碰撞區域,觸發canthrow = false
void ontriggerexit(collider col)
}
在這個函式中,引數theobject是乙個collision類的例項,這樣的乙個例項儲存著關於速率、剛體、碰撞器、變換、遊戲物體的資訊,另外還有碰撞發生時的接觸點。
collision 例子:
5. audiosource.playclipatpoint()
audiosource.playclipatpoint(testsound,transform.position);
6. instantiate 例項化
public rigidbody coconutprefab; //發射的椰子預設7. destroypublic float throwspeed = 30f; //發射速度
void update ()
}
destory(需要被移除的物體或者元件,多長時間後執行此移除函式);
// 編寫以下指令碼,並直接繫結到「椰子」預設上,生成的「椰子」轉殖體就會在3秒後自動被刪除,以此來減小遊戲的開銷。8. 陣列越界問題void start ()
public vector3 dalou_correct ; //大樓正確的位置9. 透明 問題public vector3 chuang_correct ; //窗戶正確的位置
// 如果在這裡定義成 public vector3 dalou_correct = new vector3[14];
// 在下面呼叫chuang_correct[0] 就會報錯超出陣列界限
void start ()
for (int j = 0; j < dalou_now.transform.childcount; j++)
參考10. ngui如果用setactive(false)隱藏面板,當它上面還有正在執行的協程時就會報錯
可以用uipanel.alpha=0來隱藏
11. start函式只會執行一次,如果乙個cube上有start函式,在另乙個物體上控制cube.setactive(false),再cube.setactive(true)
此時cube再次啟用時,start函式不會被執行
12. 陣列本身是引用傳遞,但是陣列元素可以是值傳遞,不要直接記錄原來的transform陣列,用transform記錄position是儲存不了值的,用vector3陣列去記錄position就可以了
unity學習筆記2
自 對於新手學習unity碰撞講的還是比較清楚的 ontriggerenter和oncollisionenter的觸發條件是不同的,需要在設計的過程中加以關注。碰撞的兩個物體a,b,都要有碰撞體 collider box collider,sphere collider,capsule collid...
菜鳥筆記 SQL語句 2
菜鳥筆記 sql語句 2 資料查詢語句 1 檢視某張表有哪些字段 desc 表名 2 oracle 資料庫 寫完sql執行要加 分號,mysql加不加都行 3 select from emp 使用萬用字元 書寫方便,檢索未知,但會降低檢索效率 4 起別名as 或者加雙引號為固定格式 或者啥也不加會把...
Unity菜鳥開發紀要 2D描邊
3d模型的描邊漫天飛,通過法線計算就行,但是2d還是雖然也有,但不是自己想要的,畢竟只是想調一下顏色,閾值,邊緣大小就行。之前是做影象處理的,用的波門處理,計算乙個畫素點與周圍的梯度值差異,大於閾值的就是邊緣點。求的邊緣點與邊緣色混合,再與原色混合輸出就可以。直接上 在這裡插入 片 shader u...