public override void Start() { if (m_started) return; base.Start(); // Assign our aggregate layers: aggregateLayers = new SpriteRoot[2][]; aggregateLayers[0] = filledLayers; aggregateLayers[1] = emptyLayers; // The knob will handle its own layers // Runtime init stuff: if(Application.isPlaying) { // Calculate our truncation floor and range: truncFloor = stopKnobFromEdge / width; truncRange = 1f - truncFloor * 2f; filledIndices = new int[filledLayers.Length]; emptyIndices = new int[emptyLayers.Length]; // Populate our state indices based on if we // find any valid states/animations in each // sprite layer: for (int i = 0; i < filledLayers.Length; ++i) { if (filledLayers[i] == null) { Debug.LogError("A null layer sprite was encountered on control \"" + name + "\". Please fill in the layer reference, or remove the empty element."); continue; } filledIndices[i] = filledLayers[i].GetStateIndex("filled"); if (filledIndices[i] != -1) filledLayers[i].SetState(filledIndices[i]); } for (int i = 0; i < emptyLayers.Length; ++i) { if (emptyLayers[i] == null) { Debug.LogError("A null layer sprite was encountered on control \"" + name + "\". Please fill in the layer reference, or remove the empty element."); continue; } emptyIndices[i] = emptyLayers[i].GetStateIndex("empty"); if (emptyIndices[i] != -1) emptyLayers[i].SetState(emptyIndices[i]); } // Create our knob: GameObject go = new GameObject(); go.name = name + " - Knob"; go.transform.parent = transform; go.transform.localPosition = CalcKnobStartPos(); go.transform.localRotation = Quaternion.identity; go.transform.localScale = Vector3.one; go.layer = gameObject.layer; knob = (UIScrollKnob) go.AddComponent(typeof(UIScrollKnob)); knob.plane = plane; knob.SetOffset(knobOffset); knob.persistent = persistent; knob.bleedCompensation = bleedCompensation; if (!managed) { if (knob.spriteMesh != null) ((SpriteMesh)knob.spriteMesh).material = renderer.sharedMaterial; } else { if (manager != null) { knob.Managed = managed; manager.AddSprite(knob); knob.SetDrawLayer(drawLayer + 1); // Knob should be drawn in front of the bar } else Debug.LogError("Sprite on object \"" + name + "\" not assigned to a SpriteManager!"); } knob.autoResize = autoResize; if (pixelPerfect) { knob.pixelPerfect = true; } else knob.SetSize(knobSize.x, knobSize.y); knob.ignoreClipping = ignoreClipping; knob.color = color; knob.SetColliderSizeFactor(knobColliderSizeFactor); knob.SetSlider(this); knob.SetMaxScroll(width - (stopKnobFromEdge * 2f)); knob.SetInputDelegate(inputDelegate); // Setup knob's transitions: knob.transitions[0] = transitions[2]; knob.transitions[1] = transitions[3]; knob.transitions[2] = transitions[4]; // Tell the knob what it will look like: knob.layers = knobLayers; // Child the knob's layers to the knob: for (int i = 0; i < knobLayers.Length; ++i) knobLayers[i].transform.parent = knob.transform; knob.animations[0].SetAnim(states[2], 0); knob.animations[1].SetAnim(states[3], 1); knob.animations[2].SetAnim(states[4], 2); knob.SetupAppearance(); knob.SetCamera(renderCamera); knob.Hide(IsHidden()); // Create our other sprite for the // empty/background portion: go = new GameObject(); go.name = name + " - Empty Bar"; go.transform.parent = transform; go.transform.localPosition = Vector3.zero; go.transform.localRotation = Quaternion.identity; go.transform.localScale = Vector3.one; go.layer = gameObject.layer; emptySprite = (AutoSprite) go.AddComponent(typeof(AutoSprite)); emptySprite.plane = plane; emptySprite.autoResize = autoResize; emptySprite.pixelPerfect = pixelPerfect; emptySprite.persistent = persistent; emptySprite.ignoreClipping = ignoreClipping; emptySprite.bleedCompensation = bleedCompensation; if (!managed) emptySprite.renderer.sharedMaterial = renderer.sharedMaterial; else { if (manager != null) { emptySprite.Managed = managed; manager.AddSprite(emptySprite); emptySprite.SetDrawLayer(drawLayer); // Knob should be drawn in front of the bar } else Debug.LogError("Sprite on object \"" + name + "\" not assigned to a SpriteManager!"); } emptySprite.color = color; emptySprite.SetAnchor(anchor); emptySprite.Setup(width, height, m_spriteMesh.material); if (states[1].spriteFrames.Length != 0) { emptySprite.animations = new UVAnimation[1]; emptySprite.animations[0] = new UVAnimation(); emptySprite.animations[0].SetAnim(states[1], 0); emptySprite.PlayAnim(0, 0); } emptySprite.renderCamera = renderCamera; emptySprite.Hide(IsHidden()); // Add our child objects as children // of our container: if(container != null) { container.AddChild(knob.gameObject); container.AddChild(emptySprite.gameObject); } SetState(0); // Force the value to update: m_value = -1f; Value = defaultValue; } // Since hiding while managed depends on // setting our mesh extents to 0, and the // foregoing code causes us to not be set // to 0, re-hide ourselves: if (managed && m_hidden) Hide(true); }
public override void Start() { if (m_started) { return; } base.Start(); // Assign our aggregate layers: aggregateLayers = new SpriteRoot[2][]; aggregateLayers[0] = filledLayers; aggregateLayers[1] = emptyLayers; // The knob will handle its own layers // Runtime init stuff: if (Application.isPlaying) { // Calculate our truncation floor and range: truncFloor = stopKnobFromEdge / width; truncRange = 1f - truncFloor * 2f; filledIndices = new int[filledLayers.Length]; emptyIndices = new int[emptyLayers.Length]; // Populate our state indices based on if we // find any valid states/animations in each // sprite layer: for (int i = 0; i < filledLayers.Length; ++i) { if (filledLayers[i] == null) { Debug.LogError("A null layer sprite was encountered on control \"" + name + "\". Please fill in the layer reference, or remove the empty element."); continue; } filledIndices[i] = filledLayers[i].GetStateIndex("filled"); if (filledIndices[i] != -1) { filledLayers[i].SetState(filledIndices[i]); } } for (int i = 0; i < emptyLayers.Length; ++i) { if (emptyLayers[i] == null) { Debug.LogError("A null layer sprite was encountered on control \"" + name + "\". Please fill in the layer reference, or remove the empty element."); continue; } emptyIndices[i] = emptyLayers[i].GetStateIndex("empty"); if (emptyIndices[i] != -1) { emptyLayers[i].SetState(emptyIndices[i]); } } // Create our knob: GameObject go = new GameObject(); go.name = name + " - Knob"; go.transform.parent = transform; go.transform.localPosition = CalcKnobStartPos(); go.transform.localRotation = Quaternion.identity; go.transform.localScale = Vector3.one; go.layer = gameObject.layer; knob = (UIScrollKnob)go.AddComponent(typeof(UIScrollKnob)); knob.plane = plane; knob.SetOffset(knobOffset); knob.persistent = persistent; knob.bleedCompensation = bleedCompensation; if (!managed) { if (knob.spriteMesh != null) { ((SpriteMesh)knob.spriteMesh).material = GetComponent <Renderer>().sharedMaterial; } } else { if (manager != null) { knob.Managed = managed; manager.AddSprite(knob); knob.SetDrawLayer(drawLayer + 1); // Knob should be drawn in front of the bar // Force it to update its UVs: knob.SetControlState(UIButton.CONTROL_STATE.ACTIVE); // We have to change to active so that when we set to normal, it isn't considered a redundant change and ignored. knob.SetControlState(UIButton.CONTROL_STATE.NORMAL); } else { Debug.LogError("Sprite on object \"" + name + "\" not assigned to a SpriteManager!"); } } if (pixelPerfect) { knob.pixelPerfect = true; } else { knob.SetSize(knobSize.x, knobSize.y); } knob.ignoreClipping = ignoreClipping; knob.color = color; knob.SetColliderSizeFactor(knobColliderSizeFactor); knob.SetSlider(this); knob.SetMaxScroll(width - (stopKnobFromEdge * 2f)); knob.SetInputDelegate(inputDelegate); // Setup knob's transitions: knob.transitions[0] = transitions[2]; knob.transitions[1] = transitions[3]; knob.transitions[2] = transitions[4]; // Tell the knob what it will look like: knob.layers = knobLayers; // Child the knob's layers to the knob: for (int i = 0; i < knobLayers.Length; ++i) { knobLayers[i].transform.parent = knob.transform; } knob.animations[0].SetAnim(states[2], 0); knob.animations[1].SetAnim(states[3], 1); knob.animations[2].SetAnim(states[4], 2); knob.SetupAppearance(); knob.SetCamera(renderCamera); knob.Hide(IsHidden()); knob.autoResize = autoResize; // Create our other sprite for the // empty/background portion: go = new GameObject(); go.name = name + " - Empty Bar"; go.transform.parent = transform; go.transform.localPosition = Vector3.zero; go.transform.localRotation = Quaternion.identity; go.transform.localScale = Vector3.one; go.layer = gameObject.layer; emptySprite = (AutoSprite)go.AddComponent(typeof(AutoSprite)); emptySprite.plane = plane; emptySprite.autoResize = autoResize; emptySprite.pixelPerfect = pixelPerfect; emptySprite.persistent = persistent; emptySprite.ignoreClipping = ignoreClipping; emptySprite.bleedCompensation = bleedCompensation; if (!managed) { emptySprite.GetComponent <Renderer>().sharedMaterial = GetComponent <Renderer>().sharedMaterial; } else { if (manager != null) { emptySprite.Managed = managed; manager.AddSprite(emptySprite); emptySprite.SetDrawLayer(drawLayer); // Knob should be drawn in front of the bar } else { Debug.LogError("Sprite on object \"" + name + "\" not assigned to a SpriteManager!"); } } emptySprite.color = color; emptySprite.SetAnchor(anchor); emptySprite.Setup(width, height, m_spriteMesh.material); if (states[1].spriteFrames.Length != 0) { emptySprite.animations = new UVAnimation[1]; emptySprite.animations[0] = new UVAnimation(); emptySprite.animations[0].SetAnim(states[1], 0); emptySprite.PlayAnim(0, 0); } emptySprite.renderCamera = renderCamera; emptySprite.Hide(IsHidden()); // Add our child objects as children // of our container: if (container != null) { container.AddChild(knob.gameObject); container.AddChild(emptySprite.gameObject); } SetState(0); // Force the value to update: m_value = -1f; Value = defaultValue; } // Since hiding while managed depends on // setting our mesh extents to 0, and the // foregoing code causes us to not be set // to 0, re-hide ourselves: if (managed && m_hidden) { Hide(true); } }
protected void CreateCaret() { // Create our caret and hide it by default: GameObject go = new GameObject(); go.name = name + " - caret"; go.transform.parent = transform; go.transform.localPosition = Vector3.zero; go.transform.localRotation = Quaternion.identity; go.transform.localScale = Vector3.one; go.layer = gameObject.layer; caret = (AutoSprite)go.AddComponent(typeof(AutoSprite)); caret.plane = plane; caret.offset = caretOffset; caret.SetAnchor(caretAnchor); caret.persistent = persistent; if (!managed) { if (caret.spriteMesh != null) { ((SpriteMesh)caret.spriteMesh).material = renderer.sharedMaterial; } } else { if (manager != null) { caret.Managed = managed; manager.AddSprite(caret); caret.SetDrawLayer(drawLayer + 1); // Caret should be drawn in front of the field graphic } else { Debug.LogError("Sprite on object \"" + name + "\" not assigned to a SpriteManager!"); } } caret.autoResize = autoResize; if (pixelPerfect) { caret.pixelPerfect = pixelPerfect; } else { caret.SetSize(caretSize.x, caretSize.y); } if (states[1].spriteFrames.Length != 0) { caret.animations = new UVAnimation[1]; caret.animations[0] = new UVAnimation(); caret.animations[0].SetAnim(states[1], 0); caret.PlayAnim(0, 0); } caret.renderCamera = renderCamera; caret.SetCamera(renderCamera); caret.Hide(true); transitions[1].list[0].MainSubject = caret.gameObject; PositionCaret(); if (container != null) { container.AddSubject(caret.gameObject); } }
public override void Start() { if (m_started) return; base.Start(); // Check for any existing empty bar and destroy it: if (emptySprite != null) { Destroy(emptySprite); emptySprite = null; } // Assign our aggregate layers: aggregateLayers = new SpriteRoot[2][]; aggregateLayers[0] = filledLayers; aggregateLayers[1] = emptyLayers; // Runtime init stuff: if(Application.isPlaying) { filledIndices = new int[filledLayers.Length]; emptyIndices = new int[emptyLayers.Length]; // Populate our state indices based on if we // find any valid states/animations in each // sprite layer: for (int i = 0; i < filledLayers.Length; ++i) { if (filledLayers[i] == null) { Debug.LogError("A null layer sprite was encountered on control \"" + name + "\". Please fill in the layer reference, or remove the empty element."); continue; } filledIndices[i] = filledLayers[i].GetStateIndex("filled"); if (filledIndices[i] != -1) filledLayers[i].SetState(filledIndices[i]); } for (int i = 0; i < emptyLayers.Length; ++i) { if (emptyLayers[i] == null) { Debug.LogError("A null layer sprite was encountered on control \"" + name + "\". Please fill in the layer reference, or remove the empty element."); continue; } emptyIndices[i] = emptyLayers[i].GetStateIndex("empty"); if (emptyIndices[i] != -1) emptyLayers[i].SetState(emptyIndices[i]); } // Create our other sprite for the // empty/background portion: GameObject emptyObj = new GameObject(); emptyObj.name = name + " - Empty Bar"; emptyObj.transform.parent = transform; emptyObj.transform.localPosition = Vector3.zero; emptyObj.transform.localScale = Vector3.one; emptyObj.transform.localRotation = Quaternion.identity; emptyObj.layer = gameObject.layer; emptySprite = (AutoSprite)emptyObj.AddComponent(typeof(AutoSprite)); emptySprite.plane = plane; emptySprite.autoResize = autoResize; emptySprite.pixelPerfect = pixelPerfect; emptySprite.persistent = persistent; emptySprite.ignoreClipping = ignoreClipping; emptySprite.bleedCompensation = bleedCompensation; if (!managed) emptySprite.renderer.sharedMaterial = renderer.sharedMaterial; else { if (manager != null) { emptySprite.Managed = managed; manager.AddSprite(emptySprite); emptySprite.SetDrawLayer(drawLayer); // Knob should be drawn in front of the bar } else Debug.LogError("Sprite on object \"" + name + "\" not assigned to a SpriteManager!"); } emptySprite.color = color; emptySprite.SetAnchor(anchor); emptySprite.Setup(width, height, m_spriteMesh.material); if (states[1].spriteFrames.Length != 0) { emptySprite.animations = new UVAnimation[1]; emptySprite.animations[0] = new UVAnimation(); emptySprite.animations[0].SetAnim(states[1], 0); emptySprite.PlayAnim(0, 0); } emptySprite.renderCamera = renderCamera; emptySprite.Hide(IsHidden()); Value = m_value; if (container != null) container.AddChild(emptyObj); SetState(0); } // Since hiding while managed depends on // setting our mesh extents to 0, and the // foregoing code causes us to not be set // to 0, re-hide ourselves: if (managed && m_hidden) Hide(true); }
protected void CreateCaret() { // Create our caret and hide it by default: GameObject go = new GameObject(); go.name = name + " - caret"; go.transform.parent = transform; go.transform.localPosition = Vector3.zero; go.transform.localRotation = Quaternion.identity; go.transform.localScale = Vector3.one; go.layer = gameObject.layer; caret = (AutoSprite)go.AddComponent(typeof(AutoSprite)); caret.plane = plane; caret.offset = caretOffset; caret.SetAnchor(caretAnchor); caret.persistent = persistent; if (!managed) { if (caret.spriteMesh != null) ((SpriteMesh)caret.spriteMesh).material = renderer.sharedMaterial; } else { if (manager != null) { caret.Managed = managed; manager.AddSprite(caret); caret.SetDrawLayer(drawLayer + 1); // Caret should be drawn in front of the field graphic } else Debug.LogError("Sprite on object \"" + name + "\" not assigned to a SpriteManager!"); } caret.autoResize = autoResize; if (pixelPerfect) caret.pixelPerfect = pixelPerfect; else caret.SetSize(caretSize.x, caretSize.y); if (states[1].spriteFrames.Length != 0) { caret.animations = new UVAnimation[1]; caret.animations[0] = new UVAnimation(); caret.animations[0].SetAnim(states[1], 0); caret.PlayAnim(0, 0); } caret.renderCamera = renderCamera; caret.SetCamera(renderCamera); caret.Hide(true); transitions[1].list[0].MainSubject = caret.gameObject; PositionCaret(); if (container != null) container.AddSubject(caret.gameObject); }
public override void Start() { if (m_started) { return; } base.Start(); // Check for any existing empty bar and destroy it: if (emptySprite != null) { Destroy(emptySprite); emptySprite = null; } // Assign our aggregate layers: aggregateLayers = new SpriteRoot[2][]; aggregateLayers[0] = filledLayers; aggregateLayers[1] = emptyLayers; // Runtime init stuff: if (Application.isPlaying) { filledIndices = new int[filledLayers.Length]; emptyIndices = new int[emptyLayers.Length]; // Populate our state indices based on if we // find any valid states/animations in each // sprite layer: for (int i = 0; i < filledLayers.Length; ++i) { if (filledLayers[i] == null) { Debug.LogError("A null layer sprite was encountered on control \"" + name + "\". Please fill in the layer reference, or remove the empty element."); continue; } filledIndices[i] = filledLayers[i].GetStateIndex("filled"); if (filledIndices[i] != -1) { filledLayers[i].SetState(filledIndices[i]); } } for (int i = 0; i < emptyLayers.Length; ++i) { if (emptyLayers[i] == null) { Debug.LogError("A null layer sprite was encountered on control \"" + name + "\". Please fill in the layer reference, or remove the empty element."); continue; } emptyIndices[i] = emptyLayers[i].GetStateIndex("empty"); if (emptyIndices[i] != -1) { emptyLayers[i].SetState(emptyIndices[i]); } } if (!disableEmptyBar) { // Create our other sprite for the // empty/background portion: GameObject emptyObj = new GameObject(); emptyObj.name = name + " - Empty Bar"; emptyObj.transform.parent = transform; emptyObj.transform.localPosition = Vector3.zero; emptyObj.transform.localScale = Vector3.one; emptyObj.transform.localRotation = Quaternion.identity; emptyObj.layer = gameObject.layer; emptySprite = (AutoSprite)emptyObj.AddComponent(typeof(AutoSprite)); emptySprite.plane = plane; emptySprite.autoResize = autoResize; emptySprite.pixelPerfect = pixelPerfect; emptySprite.persistent = persistent; emptySprite.ignoreClipping = ignoreClipping; emptySprite.bleedCompensation = bleedCompensation; if (!managed) { emptySprite.renderer.sharedMaterial = renderer.sharedMaterial; } else { if (manager != null) { emptySprite.Managed = managed; manager.AddSprite(emptySprite); emptySprite.SetDrawLayer(drawLayer); // Knob should be drawn in front of the bar } else { Debug.LogError("Sprite on object \"" + name + "\" not assigned to a SpriteManager!"); } } emptySprite.color = color; emptySprite.SetAnchor(anchor); emptySprite.Setup(width, height, m_spriteMesh.material); if (states[1].spriteFrames.Length != 0) { emptySprite.animations = new UVAnimation[1]; emptySprite.animations[0] = new UVAnimation(); emptySprite.animations[0].SetAnim(states[1], 0); emptySprite.PlayAnim(0, 0); } emptySprite.renderCamera = renderCamera; emptySprite.Hide(IsHidden()); if (container != null) { container.AddChild(emptyObj); } } Value = m_value; SetState(0); } // Since hiding while managed depends on // setting our mesh extents to 0, and the // foregoing code causes us to not be set // to 0, re-hide ourselves: if (managed && m_hidden) { Hide(true); } }
protected void CreateCaret() { this.caret = (AutoSprite) new GameObject { name = base.name + "_caret", transform = { parent = base.transform, localPosition = Vector3.zero, localRotation = Quaternion.identity, localScale = Vector3.one }, layer = GUICamera.UILayer }.AddComponent(typeof(AutoSprite)); this.caret.plane = this.plane; this.caret.offset = this.caretOffset; this.caret.SetAnchor(this.caretAnchor); this.caret.persistent = this.persistent; if (!this.managed) { if (this.caret.spriteMesh != null) { Material material = CResources.Load(NrTSingleton <UIDataManager> .Instance.FilePath + "Material/Default White Material" + NrTSingleton <UIDataManager> .Instance.AddFilePath) as Material; ((SpriteMesh)this.caret.spriteMesh).material = material; ((SpriteMesh)this.caret.spriteMesh).UpdateColors(this.spriteText.color); this.caret.SetUVs(new Rect(0f, 0f, 1f, 1f)); this.caret.SetDrawLayer(this.drawLayer + 1); } } else if (this.manager != null) { this.caret.Managed = this.managed; this.manager.AddSprite(this.caret); this.caret.SetDrawLayer(this.drawLayer + 1); ((SpriteMesh)this.caret.spriteMesh).UpdateColors(this.spriteText.color); } else { TsLog.LogError("Sprite on object \"" + base.name + "\" not assigned to a SpriteManager!", new object[0]); } this.caret.autoResize = this.autoResize; if (this.pixelPerfect) { this.caret.pixelPerfect = this.pixelPerfect; } else { this.caretSize.x = 3f; if (TsPlatform.IsWeb) { this.caretSize.y = this.height * 0.7f; } else { this.caretSize.y = this.spriteText.BaseHeight; } this.caret.SetSize(this.caretSize.x, this.caretSize.y); } if (this.states[1].spriteFrames.Length != 0) { this.caret.animations = new UVAnimation[1]; this.caret.animations[0] = new UVAnimation(); this.caret.animations[0].SetAnim(this.states[1], 0); this.caret.PlayAnim(0, 0); } this.caret.renderCamera = this.renderCamera; this.caret.SetCamera(this.renderCamera); this.caret.Hide(true); this.transitions[1].list[0].MainSubject = this.caret.gameObject; this.PositionCaret(); if (this.container != null) { this.container.AddSubject(this.caret.gameObject); } this.caretblinkTime = Time.time; }
protected override void Start() { base.Start(); // Create a TextMesh object if none exists: if (spriteText == null) { Text = " "; Text = ""; } if(spriteText != null) { origTextPos = spriteText.transform.localPosition; SetMargins(margins); } // Set the insertion point to the end by default: insert = Text.Length; // Runtime init stuff: if (Application.isPlaying) { // Create a default collider if none exists: if (collider == null) AddCollider(); // Create our caret and hide it by default: GameObject go = new GameObject(); go.name = name + " - caret"; go.transform.parent = transform; go.transform.localPosition = Vector3.zero; go.transform.localRotation = Quaternion.identity; go.transform.localScale = Vector3.one; go.layer = gameObject.layer; caret = (AutoSprite)go.AddComponent(typeof(AutoSprite)); caret.plane = plane; caret.offset = caretOffset; caret.SetAnchor(caretAnchor); caret.persistent = persistent; if (!managed) { if (caret.spriteMesh != null) ((SpriteMesh)caret.spriteMesh).material = renderer.sharedMaterial; } else { if (manager != null) { caret.Managed = managed; manager.AddSprite(caret); caret.SetDrawLayer(drawLayer + 1); // Caret should be drawn in front of the field graphic } else Debug.LogError("Sprite on object \"" + name + "\" not assigned to a SpriteManager!"); } caret.autoResize = autoResize; if (pixelPerfect) caret.pixelPerfect = pixelPerfect; else caret.SetSize(caretSize.x, caretSize.y); if (states[1].spriteFrames.Length != 0) { caret.animations = new UVAnimation[1]; caret.animations[0] = new UVAnimation(); caret.animations[0].SetAnim(states[1], 0); caret.PlayAnim(0, 0); } caret.SetCamera(renderCamera); caret.Hide(true); transitions[1].list[0].MainSubject = caret.gameObject; PositionCaret(); if (container != null) container.AddChild(caret.gameObject); } cachedPos = transform.position; cachedRot = transform.rotation; cachedScale = transform.lossyScale; CalcClippingRect(); }
public override void Start() { if (this.m_started) { return; } base.Start(); this.aggregateLayers = new SpriteRoot[2][]; this.aggregateLayers[0] = this.filledLayers; this.aggregateLayers[1] = this.emptyLayers; if (Application.isPlaying) { this.filledIndices = new int[this.filledLayers.Length]; this.emptyIndices = new int[this.emptyLayers.Length]; for (int i = 0; i < this.filledLayers.Length; i++) { if (this.filledLayers[i] == null) { TsLog.LogError("A null layer sprite was encountered on control \"" + base.name + "\". Please fill in the layer reference, or remove the empty element.", new object[0]); } else { this.filledIndices[i] = this.filledLayers[i].GetStateIndex("filled"); if (this.filledIndices[i] != -1) { this.filledLayers[i].SetState(this.filledIndices[i]); } } } for (int j = 0; j < this.emptyLayers.Length; j++) { if (this.emptyLayers[j] == null) { TsLog.LogError("A null layer sprite was encountered on control \"" + base.name + "\". Please fill in the layer reference, or remove the empty element.", new object[0]); } else { this.emptyIndices[j] = this.emptyLayers[j].GetStateIndex("empty"); if (this.emptyIndices[j] != -1) { this.emptyLayers[j].SetState(this.emptyIndices[j]); } } } GameObject gameObject = new GameObject(); gameObject.name = base.name + " - Empty Bar"; gameObject.transform.parent = base.transform; gameObject.transform.localPosition = Vector3.zero; gameObject.transform.localScale = Vector3.one; gameObject.transform.localRotation = Quaternion.identity; gameObject.layer = base.gameObject.layer; this.emptySprite = (AutoSprite)gameObject.AddComponent(typeof(AutoSprite)); this.emptySprite.plane = this.plane; this.emptySprite.autoResize = this.autoResize; this.emptySprite.pixelPerfect = this.pixelPerfect; this.emptySprite.persistent = this.persistent; this.emptySprite.ignoreClipping = this.ignoreClipping; this.emptySprite.bleedCompensation = this.bleedCompensation; if (!this.managed) { this.emptySprite.renderer.sharedMaterial = base.renderer.sharedMaterial; } else if (this.manager != null) { this.emptySprite.Managed = this.managed; this.manager.AddSprite(this.emptySprite); this.emptySprite.SetDrawLayer(this.drawLayer); } else { TsLog.LogError("Sprite on object \"" + base.name + "\" not assigned to a SpriteManager!", new object[0]); } this.emptySprite.SetAnchor(this.anchor); this.emptySprite.Setup(this.width, this.height, this.m_spriteMesh.material); if (this.states[1].spriteFrames.Length != 0) { this.emptySprite.animations = new UVAnimation[1]; this.emptySprite.animations[0] = new UVAnimation(); this.emptySprite.animations[0].SetAnim(this.states[1], 0); this.emptySprite.PlayAnim(0, 0); } this.emptySprite.renderCamera = this.renderCamera; this.emptySprite.Hide(base.IsHidden()); this.Value = this.m_value; if (this.container != null) { this.container.AddChild(gameObject); } this.SetState(0); } if (this.managed && this.m_hidden) { this.Hide(true); } }