2 using System.Collections;
9 private Material materialOpaque, materialTransparent, materialHologram;
11 private Color materialColor;
13 public void setColor( Color color )
15 materialColor = color;
16 materialOpaque.color = color;
17 materialTransparent.color = color;
18 materialHologram.color = color;
21 bool loadingEffectActive =
false;
22 float loadingAmount = 0;
28 materialHologram = Instantiate( Resources.Load(
"Materials/MeshHologram", typeof(Material)) as Material ) as Material;
29 materialOpaque = Instantiate( Resources.Load(
"Materials/MeshOpaque", typeof(Material)) as Material ) as Material;
30 materialTransparent = Instantiate( Resources.Load(
"Materials/MeshTransparent", typeof(Material)) as Material ) as Material;
33 private Bounds calculateBoundingBox()
35 Bounds b =
new Bounds ();
36 bool initialized =
false;
38 foreach (Transform tf
in transform)
40 MeshFilter mf = tf.GetComponent<MeshFilter> ();
43 b =
new Bounds (mf.mesh.bounds.center, mf.mesh.bounds.size);
46 b.Encapsulate (mf.mesh.bounds);
53 public void changeOpactiyOfChildren(
float f){
56 gameObject.SetActive(
false);
59 gameObject.SetActive(
true);
65 mat = materialTransparent;
67 mat.color =
new Color (materialColor.r, materialColor.g, materialColor.b, f);
69 foreach (Transform tf
in transform)
71 MeshRenderer mr = tf.GetComponent<MeshRenderer> ();
77 public void startLoadingEffect()
80 SetLoadingEffectAmount (0);
82 GameObject loadingEffectGameObject =
new GameObject (
"LoadingEffect");
84 foreach (Transform tf
in transform) {
85 tf.gameObject.SetActive (
true);
86 GameObject clone = Object.Instantiate (tf.gameObject);
87 clone.GetComponent<MeshRenderer> ().material = materialHologram;
88 clone.transform.SetParent (loadingEffectGameObject.transform,
false);
89 Destroy (clone.GetComponent<MeshCollider> ());
91 loadingEffectGameObject.transform.SetParent (transform,
false);
93 loadingEffectActive =
true;
97 public void endLoadingEffect()
99 loadingEffectActive =
false;
100 Transform tf = transform.Find (
"LoadingEffect");
102 Destroy (tf.gameObject);
105 public void SetLoadingEffectAmount(
float amount )
107 Bounds b = calculateBoundingBox ();
109 amount = Mathf.Clamp (amount, 0f, 5f);
110 materialHologram.SetFloat (
"_amount", amount);
111 materialHologram.SetVector (
"_size", b.size);
112 materialHologram.SetVector (
"_center", b.center);
114 materialOpaque.SetFloat (
"_amount", amount - 3f );
115 materialOpaque.SetVector (
"_size", b.size);
116 materialOpaque.SetVector (
"_center", b.center);
118 materialTransparent.SetFloat (
"_amount", amount - 3f );
119 materialTransparent.SetVector (
"_size", b.size);
120 materialTransparent.SetVector (
"_center", b.center);
124 if (loadingEffectActive) {
125 loadingAmount = loadingAmount + 2f*Time.deltaTime;
126 SetLoadingEffectAmount (loadingAmount);
127 if (loadingAmount > 5) {