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
/*
 *
 *	Adventure Creator
 *	by Chris Burton, 2013-2014
 *	
 *	"BackgroundImage.cs"
 * 
 *	The BackgroundImage prefab is used to store a GUITexture for use in background images for 2.5D games.
 * 
 */

using UnityEngine;
using System.Collections;

public class BackgroundImage : MonoBehaviour
{
	
	private float shakeDecay;
	private float shakeIntensity;
	private Rect originalPixelInset;


	public void TurnOn ()
	{
		if (LayerMask.NameToLayer (AdvGame.GetReferences ().settingsManager.backgroundImageLayer) == -1)
		{
			Debug.LogWarning ("No '" + AdvGame.GetReferences ().settingsManager.backgroundImageLayer + "' layer exists - please define one in the Tags Manager.");
		}
		else
		{
			gameObject.layer = LayerMask.NameToLayer (AdvGame.GetReferences ().settingsManager.backgroundImageLayer);
		}
		
		if (GetComponent <GUITexture>())
		{
			GetComponent <GUITexture>().enabled = true;
		}
		else
		{
			Debug.LogWarning (this.name + " has no GUITexture component");
		}
	}
	
	
	public void TurnOff ()
	{
		gameObject.layer = LayerMask.NameToLayer (AdvGame.GetReferences ().settingsManager.deactivatedLayer);
		
		if (GetComponent <GUITexture>())
		{
			GetComponent <GUITexture>().enabled = false;
		}
		else
		{
			Debug.LogWarning (this.name + " has no GUITexture component");
		}
	}
	
	
	public void Shake (float _shakeDecay)
	{
		if (shakeIntensity > 0f)
		{
			this.GetComponent <GUITexture>().pixelInset = originalPixelInset;
		}
		
		originalPixelInset = this.GetComponent <GUITexture>().pixelInset;
		
		shakeDecay = _shakeDecay;
		shakeIntensity = shakeDecay * 150f;
	}
	
	
	private void FixedUpdate ()
	{
		if (this.GetComponent <GUITexture>())
		{
			if (shakeIntensity > 0f)
			{
				float _size = Random.Range (0, shakeIntensity) * 0.2f;
				
				this.GetComponent <GUITexture>().pixelInset = new Rect
				(
					originalPixelInset.x - Random.Range (0, shakeIntensity) * 0.1f,
					originalPixelInset.y - Random.Range (0, shakeIntensity) * 0.1f,
					originalPixelInset.width + _size,
					originalPixelInset.height + _size
				);
				
				shakeIntensity -= shakeDecay;
			}
			
			else if (shakeIntensity < 0f)
			{
				shakeIntensity = 0f;
				this.GetComponent <GUITexture>().pixelInset = originalPixelInset;
			}
		}
	}
	
}

Commits for Nextrek/SpaceCrew/SpaceCrew/Assets/AdventureCreator/Scripts/Object/BackgroundImage.cs

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