Ejemplo n.º 1
0
 /// <summary>
 /// 注销一个HUD
 /// </summary>
 /// <param name="id"></param>
 private void UnRegisterHUD(int id)
 {
     if (hudDic.ContainsKey(id))
     {
         EntityHUD entityHUD = hudDic[id];
         ReuseHUD(entityHUD);
         hudDic.Remove(id);
     }
 }
Ejemplo n.º 2
0
        /// <summary>
        /// 创建一个HUD
        /// </summary>
        /// <param name="asset"></param>
        /// <param name="id"></param>
        /// <param name="name"></param>
        /// <param name="percent"></param>
        /// <param name="pos"></param>
        private void CreateHUD(Object asset, int id, string name, float percent, Vector3 pos)
        {
            EntityHUD entityHUD = GetEntityHUD(asset);

            RegisterHUD(id, entityHUD);
            entityHUD.Initial(name, percent);

            UpdateHUDPos(pos, entityHUD);
        }
Ejemplo n.º 3
0
 /// <summary>
 /// 注册一个HUD
 /// </summary>
 /// <param name="id"></param>
 /// <param name="entityHUD"></param>
 private void RegisterHUD(int id, EntityHUD entityHUD)
 {
     if (!hudDic.ContainsKey(id))
     {
         hudDic.Add(id, entityHUD);
     }
     else
     {
         hudDic[id] = entityHUD;
     }
 }
Ejemplo n.º 4
0
        /// <summary>
        /// 计算位置,如果在屏幕范围内则显示并更新位置,否则不显示
        /// </summary>
        /// <param name="pos"></param>
        /// <param name="entityHUD"></param>
        private void UpdateHUDPos(Vector3 pos, EntityHUD entityHUD)
        {
            Vector3 posScreen = Camera.main.WorldToScreenPoint(pos);

            if (IsInScreen(posScreen))
            {
                entityHUD.Show();
                entityHUD.UpdatePos(posScreen);
            }
            else
            {
                entityHUD.Hide();
            }
        }
Ejemplo n.º 5
0
        /// <summary>
        /// 获得实体HUD
        /// </summary>
        /// <param name="obj"></param>
        /// <returns></returns>
        private EntityHUD GetEntityHUD(Object obj)
        {
            if (hudCache.Count > 0)
            {
                return(hudCache.GetObj());
            }
            else
            {
                GameObject go        = (GameObject)Instantiate(obj);
                EntityHUD  entityHUD = go.GetComponent <EntityHUD>();
                if (entityHUD == null)
                {
                    entityHUD = go.AddComponent <EntityHUD>();
                }

                return(entityHUD);
            }
        }
Ejemplo n.º 6
0
 /// <summary>
 /// 缓存HUD
 /// </summary>
 /// <param name="entityHUD"></param>
 private void ReuseHUD(EntityHUD entityHUD)
 {
     entityHUD.Clear();
     hudCache.PutObj(entityHUD);
 }