/// <summary> /// 启用飘字结点 /// </summary> /// <param name="ins"></param> public static void EnableFloatNode(FloatFontNode ins) { ActiviteList.AddLast(ins); UnActiviteList.Remove(ins); ins.SetEnable(true); ins.OnEnabled(); }
public static void DestroyALL() { if (Movie.GetSingleton <FloatFontMovie>() == null) { return; } foreach (FloatFontNode ff in ActiviteList) { Destroy(ff); } foreach (FloatFontNode ff in UnActiviteList) { Destroy(ff); } WillRemoveActiviteList.Clear(); ActiviteList.Clear(); UnActiviteList.Clear(); }
public static void Update() { if (!bInit) { return; } if (WillRemoveActiviteList.Count > 0) { //先移除上一帧需要移除的对象 foreach (FloatFontNode ff in WillRemoveActiviteList) { ActiviteList.Remove(ff); //Destroy(ff); } WillRemoveActiviteList.Clear(); } foreach (FloatFontNode ff in ActiviteList) { ff.OnUpdate(); } }
/// <summary> /// 创建一个飘字,成功返回实例,失败返回null /// </summary> /// <param name="entry">实体</param> /// <param name="text">飘字的内容,目前只能是数字,像暴击、躲闪之类的尚未实现</param> /// <param name="type">飘字的类型</param> /// <param name="followEntity">跟随实体</param> /// <returns></returns> public static FloatFontNode CreateFloatFont(GameObject entry, string text, FloatFontType type = FloatFontType.TYPE_ENEMY_DAMGE, bool followEntity = false) { FloatFontNode tempNode = null; if (!bInit) { Trace.LogError("FloatFontManager必须初始化!"); return(tempNode); } if (SFGFxMovieManager.Instance == null) { Trace.LogError("SFGFxMovieManager没有初始化,请不要在Awake中创建!"); return(tempNode); } //有可能FloatFontMovie还没有创建完成. if (Movie.GetSingleton <FloatFontMovie>() == null) { //Trace.LogError("FloatFontMovie尚未创建完成,请等待创建完成后再调用,请不要在Awake或者Start中创建"); return(tempNode); } //有可能FloatFontMovie还没有创建完成. if (FloatFontMovie.Instance == null) { //Trace.LogError("FloatFontMovie尚未创建完成,请等待创建完成后再调用,请不要在Awake或者Start中创建"); return(tempNode); } if (!NeedToCreate(entry)) { return(null); } if (UnActiviteList.Count > 0) { tempNode = UnActiviteList.First.Value; UnActiviteList.RemoveFirst(); EnableFloatNode(tempNode); tempNode.ChangeHostEntity(entry); tempNode.ChangeType(type); tempNode.SetText(text); tempNode.UpdatePos(); } else { tempNode = CreateNewNode(entry); if (null == tempNode) { return(null); } tempNode.ChangeType(type); tempNode.SetText(text); tempNode.UpdatePos(); tempNode.SetEnable(true); ActiviteList.AddLast(tempNode); } tempNode.bFollowEntity = followEntity; return(tempNode); }