文章

目前顯示的是 五月, 2013的文章

讓角色控制器不斷向前移動

#pragma strict // 宣告私有變數 moveDirection 移動方向 private var moveDirection : Vector3 = Vector3.zero; function Start () { // moveDirection 為目前物件的前方 moveDirection = transform.TransformDirection (Vector3.forward); } function Update () { var controller : CharacterController = GetComponent(CharacterController); // 呼叫 FrowardMove 函數 向前移動 FrowardMove(); // 應用移動角色 controller.Move(moveDirection * Time.deltaTime); } function FrowardMove (){ // 向目前角色控制器的Z軸前進 moveDirection = Vector3(0, 0, 1); moveDirection = transform.TransformDirection(moveDirection); }

Unity 搭配 GUITexture 實現簡易觸控功能

圖片
細節請參考這些網站: 觸控數量: http://game.ceeger.com/Script/Input/Input.touchCount.html 觸控狀態: http://game.ceeger.com/Script/Enumerations/TouchPhase/TouchPhase.html 觸控列表: http://game.ceeger.com/Script/Input/Input.touches.html 獲取觸控: http://game.ceeger.com/Script/Input/Input.GetTouch.html 新增GUITexture物件

用Unity印出行動裝置加速規資訊

圖片
http://u3d.as/content/gripati-digital-entertainment/accelerometer-based-control/2yZ function Update () { // 印出 加速規 x.y.z 數值 print("|X軸"+ Input.acceleration.x + "|Y軸"+ Input.acceleration.y + "|Z軸"+ Input.acceleration.z); } 這篇有說到更詳細的加速規概念,可以連至該頁面參考 http://blog.csdn.net/lijing_hi/article/details/7252954

Unity簡易八方手勢判斷

圖片
有BUG的手勢...... 如果刻意將其它沒有要判斷的手指放在上面會無法正常運行 由於Blogger在判斷大於小於會錯誤,在此放上截圖供對照。 判斷邏輯與簡易版程式碼 #pragma strict // 宣告進入、離開觸控位置陣列 var startPos : Vector2[]; var endPos : Vector2[]; // 公開變數 宣告手勢方向 static var gesturesDir:Vector2 = Vector2.zero; // 設定觸控陣列長度為5 function Start(){    startPos = new Vector2[5];    endPos = new Vector2[5]; } function Update () { // 假使 觸控點大於1 if (Input.touchCount > 0) { // 進行迴圈判斷 for (var h = 0; h < Input.touchCount;++h) { // 將觸碰進入點座標放置相對應陣列 if (Input.GetTouch(h).phase == TouchPhase.Began) { startPos[h] = Input.GetTouch(h).position; } // 將觸碰離開點座標放置相對應陣列 if (Input.GetTouch(h).phase == TouchPhase.Ended) { endPos[h] = Input.GetTouch(h).position; GesturesCtrl(startPos[h],endPos[h]); } } } } function GesturesCtrl (startPoint:Vector2,endPoint:Vector2){ var xDiff : float = endPoint.x - startPoint.x; var yDiff : fl

Pencil+ 日式賽璐璐算圖外掛 教學影片

圖片
材質設定 線框設定 反射與折射 線框筆觸 線框分層 距離衰減 燈光色彩 透視變形 高光圖樣

專題遊戲美術心得:遊戲模型的點焊接處理 - 頭與身體是否該完全分離?

圖片
這個類別接著都會發一些比較短的處理心得文,希望幫得上其它也在學習的朋友。 在製作一個人物模型時,要考慮到遊戲的風格、角色特性還有動的時候會出現哪些問題。 像這個例子就是3D人員在建模時把身體跟頭部分開建模,但沒有焊起來就交給另一位人員處理權重,在動的時候就會出現這種雖然很小但也很嚴重的破綻。 雖然某些部分這樣處理或許沒問題,但為調整權重,還是建議將這些點焊起來。

以滑鼠、觸控方式判斷並觸發物件

圖片
因為某些需求,需要用觸控、滑鼠點擊物件的方式去觸發函數,可以嘗試使用這個方式。 不過判斷沒寫得很詳細,相信如果搞懂這個方式,應該有足夠能力寫更細部的判斷(圖層、標籤、距離、不同滑鼠或觸控動作) 將腳本撰寫好後拖拉到攝影機上就可以使用了。 #pragma strict // 宣告 私有 射線判斷距離 private var rayDistance : float = 100.0; function Update () { touchRay(); mouseRay(); } // 觸控碰觸物件判斷 function touchRay(){ // 假使 觸控點 大於1 if (Input.touchCount > 0){ // 迴圈判斷觸控點 for (var i = 0; i < Input.touchCount; ++i) { // 假使 觸控進入 if (Input.GetTouch(i).phase == TouchPhase.Began) { // 宣告射線,由鏡頭觸控座標射出 var ray = Camera.main.ScreenPointToRay (Input.GetTouch(i).position); var hit : RaycastHit; // 假使碰觸到物件 且距離於 rayDistance 內 if (Physics.Raycast (ray , hit , rayDistance) ){ // 將碰觸物件材質球顏色 改為 紅色 hit.collider.renderer.material.color = Color.red; } } } } } // 滑鼠游標碰觸物件判斷 function mouseRay(){ var ray : Ray = camera.ScreenPointToRay (Input.mousePosition); var hit : RaycastHit; // 畫出黃色射線於編輯器 Debug.DrawRay (ray.origin, ray.direction * rayDistance, Color.yellow); if (Physics.Raycas