View difference between Paste ID: FWEhUccC and 0rD6e4Zn
SHOW: | | - or go back to the newest paste.
1
// SpriteGroups.js was created by Not Quite Black and White for the upcoming point and click adventure This is No Time for Games
2
// but the script can be used in your Unity projects, license free.
3
// If you want to find out more about This is No Time for Games please visit ThisisNoTimeforGames.com
4
5
// This script is for editing the colour, sorting layer and sorting order of a group of sprite renderers simultaneously.
6
// Multiple groups of sprite renderers can be contained within the variable "spriteGroups" and edited separately in the editor.
7
// To allow the sprite groups to be edited at runtime too, just delete the if (!(Application.isPlaying)) on lines 38, 25 and 24.
8
9
// For instructions on use please attach this to a game object and see the tooltips in the inspector.
10
11
#pragma strict
12
13
import System.Collections.Generic;
14
15
@script ExecuteInEditMode()
16
public class SpriteGroups extends MonoBehaviour
17
{
18
	@Tooltip ("To create a new group of sprites that can be edited simultaneously, click the arrow and type the number of groups of sprites you want to create into the field.")
19
	public var spriteGroups : List.<SpriteGroupInfo>;
20
21
	#if UNITY_EDITOR
22
	public function Update()
23
	{
24
		if (!(Application.isPlaying))
25
		{
26
			if (spriteGroups != null)
27
			{
28
				for (var i=0; i < spriteGroups.Count; i++)
29
			    {
30
			     	for (var j=0; j < spriteGroups[i].spriteRendererList.Count; j++)
31
			     	{
32
			     		if (spriteGroups[i].updateColour) spriteGroups[i].spriteRendererList[j].color = spriteGroups[i].colour;
33
			     		if (spriteGroups[i].updateSortingLayer) spriteGroups[i].spriteRendererList[j].sortingLayerName = spriteGroups[i].sortingLayer;
34
			     		if (spriteGroups[i].updateSortingOrder) spriteGroups[i].spriteRendererList[j].sortingOrder = spriteGroups[i].sortingOrder;
35
			     	}
36
			    }
37
		 	}
38
		}
39
	}
40
	#endif
41
42
	// Set colour at runtime e.g. SetColour(0, Color.black);
43
	public function SetColour(spriteGroupsIndex : int, colour : Color)
44
	{
45
		if (spriteGroups != null)
46
		{
47
			if (spriteGroups.Count >= spriteGroupsIndex + 1)
48
		    {
49
		     	for (var i=0; i < spriteGroups[spriteGroupsIndex].spriteRendererList.Count; i++)
50
		     	{
51
		     		spriteGroups[spriteGroupsIndex].spriteRendererList[i].color = colour;
52
		     	}
53
		    }
54
		}
55
	}
56
57
	// Set sorting layer at runtime e.g SetSortingLayer(0, "Default");
58
	public function SetSortingLayer(spriteGroupsIndex : int, sortingLayer : String)
59
	{
60
		if (spriteGroups != null)
61
		{
62
			if (spriteGroups.Count >= spriteGroupsIndex + 1)
63
		    {
64
		     	for (var i=0; i < spriteGroups[spriteGroupsIndex].spriteRendererList.Count; i++)
65
		     	{
66
		     		spriteGroups[spriteGroupsIndex].spriteRendererList[i].sortingLayerName = sortingLayer;
67
		     	}
68
		    }
69
		}
70
	}
71
72
	// Set sorting order at runtime e.g SetSortingOrder(0, 10);
73
	public function SetSortingOrder(spriteGroupsIndex : int, sortingOrder : int)
74
	{
75
		if (spriteGroups != null)
76
		{
77
			if (spriteGroups.Count >= spriteGroupsIndex + 1)
78
		    {
79
		     	for (var i=0; i < spriteGroups[spriteGroupsIndex].spriteRendererList.Count; i++)
80
		     	{
81
		     		spriteGroups[spriteGroupsIndex].spriteRendererList[i].sortingOrder = sortingOrder;
82
		     	}
83
		    }
84
		}
85
	}
86
}
87
88
public class SpriteGroupInfo
89
{
90
	@Tooltip ("Set the colour for this sprite group.")
91
	public var colour : Color = Color.white;
92
	@Tooltip ("Set the sorting layer for this sprite group.")
93
	public var sortingLayer : String;
94
	@Tooltip ("Set the sorting order for this sprite group.")
95
	public var sortingOrder : int;
96
	@Tooltip ("The sprite group: Drag game objects that have sprite renderers attached from the hierarchy into this list.")
97
	public var spriteRendererList : List.<SpriteRenderer>;
98
	@Tooltip ("Do you want to update the colour of this sprite group?")
99
	public var updateColour : boolean = false;
100
	@Tooltip ("Do you want to update the sorting layer of this sprite group?")
101
	public var updateSortingLayer : boolean = false;
102
	@Tooltip ("Do you want to update the sorting order of this sprite group?")
103
	public var updateSortingOrder : boolean = false;
104
}