Subversion Repository Public Repository

Nextrek

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
/*
 *
 *	Adventure Creator
 *	by Chris Burton, 2013-2014
 *	
 *	"ActionCameraShake.cs"
 * 
 *	This action causes the MainCamera to shake,
 *	and also affects the BackgroundImage if one is active.
 * 
 */

using UnityEngine;
using System.Collections;
using AC;

#if UNITY_EDITOR
using UnityEditor;
#endif

[System.Serializable]
public class ActionCameraShake : Action
{
	
	public int shakeIntensity;
	
	
	public ActionCameraShake ()
	{
		this.isDisplayed = true;
		title = "Camera: Shake";
	}
	
	
	override public float Run ()
	{
		MainCamera mainCam = GameObject.FindWithTag (Tags.mainCamera).GetComponent <MainCamera>();
		
		if (mainCam)
		{
			if (!isRunning)
			{
				isRunning = true;
				
				if (mainCam.attachedCamera is GameCamera)
				{
					mainCam.Shake ((float) shakeIntensity / 10000f, true);
				}
				
				else if (mainCam.attachedCamera is GameCamera25D)
				{
					mainCam.Shake ((float) shakeIntensity / 10000f, true);
					
					GameCamera25D gameCamera = (GameCamera25D) mainCam.attachedCamera;
					if (gameCamera.backgroundImage)
					{
						gameCamera.backgroundImage.Shake (shakeIntensity / 100f);
					}
				}
				
				else if (mainCam.attachedCamera is GameCamera2D)
				{
					mainCam.Shake ((float) shakeIntensity / 5000f, false);
				}
				
				else
				{
					mainCam.Shake ((float) shakeIntensity / 10000f, false);
				}
					
				if (willWait)
				{
					return (defaultPauseTime);
				}
			}
			else
			{
				if (!mainCam.IsShaking ())
				{
					isRunning = false;
					return 0f;
				}
				else
				{
					return (defaultPauseTime);
				}
			}
		}
		
		return 0f;

	}

	
	#if UNITY_EDITOR

	override public void ShowGUI ()
	{
		shakeIntensity = EditorGUILayout.IntSlider ("Intensity:", shakeIntensity, 1, 10);
		willWait = EditorGUILayout.Toggle ("Pause until finish?", willWait);
		
		AfterRunningOption ();
	}
	
	
	override public string SetLabel ()
	{
		return "";
	}

	#endif
	
}

Commits for Nextrek/SpaceCrew/SpaceCrew/Assets/AdventureCreator/Scripts/Actions/ActionCameraShake.cs

Diff revisions: vs.
Revision Author Commited Message
83 FMMortaroli picture FMMortaroli Tue 13 May, 2014 11:32:51 +0000