這篇拖了好久才開始撰寫......這是10/29日下午&11/5日上午的課程
這堂課的內容實在不好寫,要花好些時間才能消化
由於第一天的課程大致上是重複的內容,所以本篇集中講第二天的實作內容
=====================================================================
這次的腳本範例都是使用3D的,事前要準備好內建的GameObject
GameObject>CreateOther>Plane(內建地板模組)
GameObject>CreateOther>Cube(內建方塊模組)
GameObject>CreateOther>Directional light(內建定向光)
=====================================================================
點擊物件
這個範例腳本放在有Camera的GameObject內,範例內容為
滑鼠點擊畫面,假如點到實體物件,此物件會移除
Input. mousePosition
:滑鼠當下的座標位置,範例中說是 點擊時的座標是因為 if 條件關係
Ray類別:存取射線資訊用,有2D版本
ScreenPointToRay(Vector3):畫面釋出射線,為Camera類別內的方法
RaycastHit類別:存取射線擊中物件的資訊, 物件必須要有Collider才能起作用
Physics類別:物理運算類別,有2D版本
Raycast(Ray , out RaycastHit , float 距離):接收 射線擊中物件後反射資訊
=====================================================================
我們為何要撰寫點擊物件的腳本?
有沒有注意到現在流行的DOTA遊戲的移動方式,是屬「滑鼠點擊座標移動」
假設我們在 上個範例點擊「Plane地面」時不是刪除物件,改成「Cube方塊」移動到該點
這樣一來我們就完成了最簡單的「滑鼠點擊物件移動」
這個腳本本身沒太大的錯誤,不過我測試好像還有點問題,需要有人來debug
hitInfo. point:射線擊中物件時的座標點, 使用 Vector3 存取
nDeltaVector變數是存取 「射線擊中座標」和「準備移動物件座標」的差距
Vector3. Normalize():正規化, 保持原有的方向,但長度為1.0
CharacterController. SimpleMove(): 移動腳色的位移速度
=====================================================================
接下去關於這堂課的文章大概都會像這樣,撰寫解釋課堂範例的內容
程式腳本可能會出錯,請小心使用,能幫忙debug就幫忙吧