在Load老師雲端專案時候
接著在進行這次Seasaw專案載入測試時都會跳出此視窗並且
跳出畫面(時有時無)
這裡做完了一次 Unity Load 專案的測試
================================================================
緊接著我們可以嘗試再照老師影片做一次專案
首先再一次開啟登入SteamVR
右上角 VR 按
開啟 Unity
登入 開新Scene
看 老師第一個影片
https://drive.google.com/drive/folders/0B3U4TWW5it5nQkRUaWV1dTdXenM
這次我從 第二部影片先做 學習
將PC Project 轉為 VR project
這次是要將一個 Seasaw 專案 轉為 VR 專案
截自 立人老師影片教學
改變兩個顏色的方塊質量
自動上下擺動
地板部分Floor
用 Cube 或 Plane 做 都可以
右側 Add component
---> Physics --> RigidBody
設置 Use Gravity : false ---> 不然地板會往下掉
Is Kinemaic : true ---> 設置為 true (動力學)開啟 不受Unity物理引擎影響需靠程式改變
軸程Bearing
用圓柱(Cylinder)做
調整 Rotation --> X:90 Y:90
按R 拉長
並沒有 RigidBody
因為我們 敲敲板 晃動
不是跨在 Bearing上的
再來是木板
有 RigidBody
有重力
有 Freeze Position X Y Z
有 Freeze Rotation X Y -------> Z (藍色箭頭)
固定 中心點
拉兩個 Cube 做 人 (在板子上方的人物件)
PearsonA 、 PearsonB
Mass 一個設 70 一個 75
有 Box Collider
(在板子設定觸發碰撞空物件Collider)
再拉兩個 地板 GroundA GroundB
皆為 Empty Object
並各自添加 Box Collider
Unity 重量 是 以 Kg 為 單位
在 Unity 基本上 碰撞
分為兩種
1. Triggerd
2. Collision
這裡我們兩個 Empty Object 皆把 Is Triggerd 勾起
待會寫程式觸發
寫 ReversionScript.cs 的 腳本
目的 以改變質量來使Board 搖擺
Step1. 先找到 這兩個人物件的 Tag
Step2. 再去更改質量
Add Tag點進去 新增兩個 Tag
取名為 程式碼中的
"Person A" "Person B" 中間有一個 Space 小心!!!!
加上 程式腳本 ReversionScript 進行測試
使用 http://hilite.me/ 內嵌 code 至 Blog
ReversionScript.cs
using UnityEngine; using System.Collections; public class ReversionScript : MonoBehaviour { GameObject personA,personB; Rigidbody rigidA,rigidB; float heavyWeight=20.0f; // 要往下掉的角色,較重的質量 20公斤 float lightWeight=1f; // 要往上昇的角色,較輕的質量 1公斤 // Use this for initialization /// <summary> /// Start this instance. /// 一些初始值設定 /// </summary> void Start () { // 以 Tag 找到 Person A 與 Person B 兩個物件並記錄下來 personA = GameObject.FindGameObjectWithTag ("Person A"); personB = GameObject.FindGameObjectWithTag ("Person B"); rigidA = personA.GetComponent<Rigidbody> (); rigidB = personB.GetComponent<Rigidbody> (); } /// <summary> /// Raises the trigger enter event. /// 寫在OnTriggerEnter()中 /// 一個參數 Collider 對方資訊 /// </summary> /// <param name="other">Other.</param> void OnTriggerEnter(Collider other) { // 碰撞到時觸發的擯制程式 if (other.tag=="Person A"){ // 目前落地的是 Person A,質量改小 rigidA.mass=lightWeight; // 對方是 Person B,質量改大 rigidB.mass=heavyWeight; } else if (other.tag=="Person B"){ // 目前落地的是 Person B,質量改小 rigidB.mass=lightWeight; // 對方是 Person A,質量改大 rigidA.mass=heavyWeight; } } /* // Update is called once per frame void Update () { } */ }
然後我發現 我的 蹺蹺板會溺水翻船
還是一樣翻船了
所以後來就
解決了 蹺蹺板 板子物件 還是會左右搖晃(擺動)的問題
解決問題方法流程
Step1. 滑鼠 點 板子 然後以自己觀察 去看目前 板子是依照哪一個座標方向軸作為旋轉軸
以目前我自己重新做的這份專案來看
緊接著還有一個小問題
我這個遊戲的練習專案有明顯的 問題就是
坐在 蹺蹺板上的 PersonA 跟 PersonB 沒有貼至在 板子 上
會有漂浮狀況
再把兩個物件拉低一些 即可
目前先完成了 所有專案的重造輪子
===================================================================
專案 VR 化後
練習將它逼真
======================================================================
老師影片中有提到 在 Unity 中
有頻繁使用到 RigidBody(鋼體)
鋼體在 蹺蹺板 專案中就有設置到
一般在產生出鋼體後會有細微綠邊框圍繞在Cube物件上
滑鼠放置拖移即可更改Collider位置
碰撞 可分為兩種
1. Triggerd
2. Collision
一個Unity專案 四種鋼體施加力 的功能特訓
場景: 一個Plane 、 四個Cube
功能 : 寫 4個 腳本 按下按鈕(鍵盤1、2、3、4)
控制:
以y方向之向上力 、
以y為旋轉軸之旋轉力、
以某一位置施力、
以某一位置施加爆炸力
先使用 SourceTree 上傳
https://github.com/github/gitignore/blob/master/Unity.gitignore
四種不同力功能觀察
https://github.com/dryjoker/UnityBasicSkill
功能演示:
加音效到VR Unity專案之中
使用到了 篮球碰篮板的声音
http://sc.chinaz.com/yinxiao/150614074092.htm#down
http://xunlei.sc.chinaz.com/Files/DownLoad/sound1/201506/5971.mp3
Unity 中 提供 Audio Component
聲音的對象(物件)
Audio Clip 屬性
Audio Listener
Audio Source 負責播放 Audio Clip中的文件
Audio Reverb Zones
Audio Effects (PRO only)
音效教學
https://www.youtube.com/watch?v=iS0DTJfUulA
沒有留言:
張貼留言