프로젝트

일반

사용자정보

통계
| 개정판:

t1 / TFDContents / Assets / KinectScripts / MultiScene / LoadLevelWhenUserDetected.cs @ 3

이력 | 보기 | 이력해설 | 다운로드 (1.47 KB)

1
using UnityEngine;
2
using System.Collections;
3
using UnityEngine.SceneManagement;
4

    
5
public class LoadLevelWhenUserDetected : MonoBehaviour 
6
{
7
	[Tooltip("User pose that will trigger the loading of next level.")]
8
	public KinectGestures.Gestures expectedUserPose = KinectGestures.Gestures.None;
9
	
10
	[Tooltip("Next level number. No level is loaded, if the number is negative.")]
11
	public int nextLevel = -1;
12

    
13
	[Tooltip("Whether to check for initialized KinectManager or not.")]
14
	public bool validateKinectManager = true;
15

    
16
	[Tooltip("GUI-Text used to display the debug messages.")]
17
	public GUIText debugText;
18

    
19

    
20
	private bool levelLoaded = false;
21
	private KinectGestures.Gestures savedCalibrationPose;
22

    
23

    
24
	void Start()
25
	{
26
		KinectManager manager = KinectManager.Instance;
27
		
28
		if(validateKinectManager && debugText != null)
29
		{
30
			if(manager == null || !manager.IsInitialized())
31
			{
32
				debugText.text = "KinectManager is not initialized!";
33
				levelLoaded = true;
34
			}
35
		}
36

    
37
		if(manager != null && manager.IsInitialized())
38
		{
39
			savedCalibrationPose = manager.playerCalibrationPose;
40
			manager.playerCalibrationPose = expectedUserPose;
41
		}
42
	}
43

    
44
	
45
	void Update() 
46
	{
47
		if(!levelLoaded && nextLevel >= 0)
48
		{
49
			KinectManager manager = KinectManager.Instance;
50
			
51
			if(manager != null && manager.IsUserDetected())
52
			{
53
				manager.playerCalibrationPose = savedCalibrationPose;
54

    
55
				levelLoaded = true;
56
				SceneManager.LoadScene(nextLevel);
57
			}
58
		}
59
	}
60
	
61
}