導入 Cardboard SDK for Unity 後,打開 Assets/Cardboard/DemoScene。Hierarchy 主要包含:
BoxCollider 和 Teleport 腳本的互動物體。掛在 Cube 上,處理注視進入/退出、點擊傳送、按鈕回調:
public class Teleport : MonoBehaviour {
Vector3 startingPosition;
void Start() {
startingPosition = transform.localPosition;
Cardboard.SDK.EnableAlignmentMarker = true; // 顯示對齊線
Cardboard.SDK.EnableSettingsButton = true; // 顯示設置按鈕
Cardboard.SDK.NeckModelScale = 1f;
SetGazedAt(false);
}
public void SetGazedAt(bool gazedAt) {
GetComponent<Renderer>().material.color = gazedAt ? Color.green : Color.red;
}
public void Reset() { transform.localPosition = startingPosition; }
public void ToggleVRMode() { Cardboard.SDK.VRModeEnabled = !Cardboard.SDK.VRModeEnabled; }
public void TeleportRandomly() {
Vector3 dir = Random.onUnitSphere;
dir.y = Mathf.Clamp(dir.y, 0.5f, 1f);
float dist = 2 * Random.value + 1.5f;
transform.localPosition = dir * dist;
}
}
EventSystem 事件:Pointer Enter → SetGazedAt(true) (變綠)Pointer Exit → SetGazedAt(false) (變紅)Pointer Click → TeleportRandomly() (隨機傳送)Teleport.Reset()Cardboard.SDK.Recenter() (校準「前方」)Teleport.ToggleVRMode() (切換雙眼/單眼模式)VRModeEnabled、Recenter()、EnableAlignmentMarker 等便捷屬性/方法Demo 展示了 Cardboard 核心交互:注視點 + EventTrigger + 碰撞體 實現 3D UI 操作。開發時以此為基礎擴展,善用 SDK 封裝的頭部數據、設備適配功能。