切換
舊版
前往
大廳
主題

資策會Unity課程「Unity進階」Day1~2

冰劍士-冰雪飛 | 2014-11-20 23:45:01 | 巴幣 6 | 人氣 4064

這篇拖了好久才開始撰寫......這是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就幫忙吧

創作回應

更多創作