public static void ObjectSetup(GameObject go, VectorLine line, Visibility visibility, Brightness brightness) { if (visibility == Visibility.Dynamic) { VisibilityControl vc = go.AddComponent(typeof(VisibilityControl)) as VisibilityControl; vc.Setup(line); } else if (visibility == Visibility.Static) { VisibilityControlStatic vcs = go.AddComponent(typeof(VisibilityControlStatic)) as VisibilityControlStatic; vcs.Setup(line); } else if (visibility == Visibility.Always) { VisibilityControlAlways vca = go.AddComponent(typeof(VisibilityControlAlways)) as VisibilityControlAlways; vca.Setup(line); } if (brightness == Brightness.Fog) { BrightnessControl bc = go.AddComponent(typeof(BrightnessControl)) as BrightnessControl; bc.Setup(line); } if (visibility >= Visibility.NotControlled && brightness >= Brightness.Normal) { Debug.LogWarning("VectorManager: Nothing to do for " + line.vectorObject.name + " in ObjectSetup"); } }
public static void DestroyObject(VectorLine line, GameObject go) { int objectNumber = 0; bool destroyed = false; bool staticControl = false; VisibilityControl vc = go.GetComponent(typeof(VisibilityControl)) as VisibilityControl; if (vc != null) { objectNumber = vc.objectNumber.i; destroyed = vc.destroyed; vc.destroyed = true; } else { VisibilityControlStatic vcs = go.GetComponent(typeof(VisibilityControlStatic)) as VisibilityControlStatic; if (vcs != null) { objectNumber = vcs.objectNumber.i; destroyed = vcs.destroyed; vcs.destroyed = true; staticControl = true; } else { VisibilityControlAlways vca = go.GetComponent(typeof(VisibilityControlAlways)) as VisibilityControlAlways; if (vca != null) { objectNumber = vca.objectNumber.i; destroyed = vca.destroyed; vca.destroyed = true; } else { Debug.LogError("VectorManager: DestroyObject: no visibility scripts seem to be attached to the object " + go.name); return; } } } // Prevent multiple calls during the same frame from messing things up, also don't try to use if playmode in the editor is stopped if (destroyed || VectorManager.use == null) { return; } if (staticControl) { VectorManager.use.VisibilityStaticRemove(objectNumber); } else { VectorManager.use.VisibilityRemove(objectNumber); } Vector.DestroyObject(line, go); }