Example #1
0
    public GUIHudElement GetOrAddElement(HudElementType type, string owner)
    {
        GUIHudElement element = null;

        if (!mElements.TryGetValue(owner, out element))                 //create element
        {
            element      = new GUIHudElement();
            element.Name = owner;
            element.Type = type;
            mElements.Add(owner, element);

            GameObject newObject = null;
            switch (type)
            {
            case HudElementType.Label:
            default:
                newObject = NGUITools.AddChild(gameObject, HUDManager.Get.NGUIHudLabelPrefab);
                ////Debug.Log ("Added label " + owner);
                break;

            case HudElementType.ProgressBar:
                newObject = NGUITools.AddChild(gameObject, HUDManager.Get.NGUIHudProgressBarPrefab);
                ////Debug.Log ("Added progress " + owner);
                break;

            case HudElementType.Icon:
                newObject = NGUITools.AddChild(gameObject, HUDManager.Get.NGUIHudIconPrefab);
                break;
            }
            newObject.name = owner;
            mWidgets.Add(owner, newObject);
        }
        return(element);
    }
Example #2
0
    public void                                     Update()
    {
//		while (mElementsToRemove.Count > 0)
//		{
//			string removeElementOwner = mElementsToRemove.Dequeue ( );
//			GUIHudElement element = null;
//			if (mElements.TryGetValue (removeElementOwner, out element))
//			{
//				element.Deactivate ( );
//				mElements.Remove (removeElementOwner);
//			}
//		}

//		float distance = Vector3.Distance (Player.Local.HeadPosition, FollowTarget.target.position);
//		if (distance >= HUDManager.gMaxHUDDistance)
//		{
//			if (!ForceActive)
//			{
//				HUDManager.Get.RetireWorldItemHUD (this);
//			}
//			else
//			{
//				//something something, make it small
//			}
//			return;
//		}
//		float scale                         = Mathf.Clamp (distance - gStartShrinkingDistance, 0f, Mathf.Infinity) * gDistanceToScaleMultiplier;
//		scale								= 1.0f - Mathf.Max (scale, gMinSize);
//		gameObject.transform.localScale     = Vector3.one * scale;

        float currentOffset = 0.0f;

        foreach (KeyValuePair <string, GameObject> widget in mWidgets)
        {
            GUIHudElement hudElement = null;
            if (mElements.TryGetValue(widget.Key, out hudElement))
            {
                if (hudElement.Deactivated)
                {
                    mElements.Remove(widget.Key);
                    GameObject.Destroy(widget.Value);
                }
                else if (hudElement.Initialized)
                {
                    GameObject widgetGo = widget.Value;
                    switch (hudElement.Type)
                    {
                    case HudElementType.Label:
                    default:
                        if (hudElement.IsDirty)
                        {
                            UILabel label = widgetGo.GetComponent <UILabel> ();
                            label.text  = hudElement.LabelText;
                            label.color = hudElement.LabelColor;
                        }
                        widgetGo.transform.localScale = Vector3.Lerp(widgetGo.transform.localScale, Vector3.one * 50.0f, 0.35f);
                        break;

                    case HudElementType.ProgressBar:
                        if (hudElement.IsDirty)
                        {
                            UISlider slider = widgetGo.GetComponent <UISlider> ();
                            slider.sliderValue = hudElement.ProgressValue;
                            UISlicedSprite fg = slider.foreground.GetComponent <UISlicedSprite> ();
                            UISlicedSprite bg = slider.gameObject.FindOrCreateChild("Background").GetComponent <UISlicedSprite> ();
                            fg.color = hudElement.FGColor;
                            bg.color = hudElement.BGColor;
//							UISlicedSprite ping	= widgetGo.FindOrCreateChild ("Ping").gameObject.GetOrAdd <UISlicedSprite> ( );
//							float pingValue		= hudElement.PingIntensity;
//							ping.color			= hudElement.PingColor;
                        }
                        widgetGo.transform.localScale = Vector3.Lerp(widgetGo.transform.localScale, Vector3.one, 0.15f);
                        break;

                    case HudElementType.Icon:
                        if (hudElement.IsDirty)
                        {
                            GameObject iconSpriteGo   = widgetGo.transform.FindChild("IconSprite").gameObject;
                            GameObject iconBGSpriteGo = widgetGo.transform.FindChild("IconBackground").gameObject;
                            UISprite   iconSprite     = iconSpriteGo.GetComponent <UISprite> ();
                            UISprite   iconBGSprite   = iconBGSpriteGo.GetComponent <UISprite> ();
                            iconSprite.atlas      = Mats.Get.IconsAtlas;                       //TEMP
                            iconSprite.spriteName = hudElement.HudIcon.IconName;
                            iconSprite.color      = hudElement.HudIcon.IconColor;
                            iconBGSprite.color    = hudElement.HudIcon.BGColor;
                        }
                        widgetGo.transform.localScale = Vector3.Lerp(widgetGo.transform.localScale, Vector3.one, 0.35f);
                        break;
                    }
                    hudElement.TargetPosition        = new Vector3(0f, currentOffset, 0f);
                    widgetGo.transform.localPosition = Vector3.Lerp(widgetGo.transform.localPosition, hudElement.TargetPosition, 0.5f);
                    currentOffset += hudElement.Dimensions.y;
                }
            }
            else                        //if it has no hud element, it's dead
            {
                mWidgets.Remove(widget.Key);
                GameObject.Destroy(widget.Value);
            }
        }
    }