public void StartAction(Vector3 postion, int tableId, string value, BoardShowType showType = BoardShowType.Fight, bool ignorePostion = false, float delay = 0, bool directivityPos = false) { IsInPool = false; if (Label) { Label.enabled = true; } enabled = true; if (delay <= 0) { Action(postion, tableId, value, showType, ignorePostion, directivityPos); } else { StartCoroutine(DelayAction(postion, tableId, value, showType, ignorePostion, delay, directivityPos)); } }
public IEnumerator DelayAction(Vector3 postion, int tableId, string value, BoardShowType showType = BoardShowType.Fight, bool ignorePostion = false, float delay = 0, bool directivityPos = false) { Label.text = ""; yield return(new WaitForSeconds(delay)); Action(postion, tableId, value, showType, ignorePostion, directivityPos); }
public void Action(Vector3 position, int tableId, string value, BoardShowType showType = BoardShowType.Fight, bool ignorePostion = false, bool directivityPos = false) { mFlag = true; Record = Table.GetCombatText(tableId); StayTime = Record.StopTime1; if (Record.IsShowShade == 1) { if (string.IsNullOrEmpty(value)) { if (BackGround.isActiveAndEnabled) { BackGround.enabled = false; } } else { if (!BackGround.isActiveAndEnabled) { BackGround.transform.gameObject.SetActive(true); BackGround.enabled = true; } } } else { if (BackGround.isActiveAndEnabled) { BackGround.enabled = false; } } var font = Label.bitmapFont; if (!font.ToString().Contains(Record.FontPath)) { var fontRes = ResourceManager.PrepareResourceSync <UIFont>("UI/Font/" + Record.FontPath + ".prefab"); Label.bitmapFont = fontRes; } if (Record.FontType == 0) { //Dynamic Label.applyGradient = true; Label.color = Color.white; if (Record.Color1 != -1) { Label.gradientTop = GameUtils.GetTableColor(Record.Color1); } else { Label.gradientTop = Color.white; } if (Record.Color2 != -1) { Label.gradientBottom = GameUtils.GetTableColor(Record.Color2); } else { Label.gradientBottom = Color.white; } } else { // Label.applyGradient = false; Label.supportEncoding = true; Label.symbolStyle = NGUIText.SymbolStyle.Colored; if (Record.Color1 != -1) { Label.color = GameUtils.GetTableColor(Record.Color1); } else { Label.color = Color.white; } } if (Record.Shadow != -1) { Label.effectStyle = UILabel.Effect.Shadow; Label.effectColor = GameUtils.GetTableColor(Record.Shadow); } else { Label.effectStyle = UILabel.Effect.None; } if (!string.IsNullOrEmpty(Record.FontAdd)) { value = Record.FontAdd + value; } Label.text = value; BoardAction.WorldPos = position; BoardAction.ShowType = showType; var offsetX = Random.Range(Record.StartX, Record.StartY); var offsetY = Random.Range(Record.MinY, Record.MaxY); var radio = GameUtils.GetResolutionRadio(); if (showType == BoardShowType.Fight) { if (DamageBoardManager.Instance == null || DamageBoardManager.Instance.UiCamera == null) { BoardAction.ActionStage = DamageBoardActionStage.Stage3; if (DamageBoardManager.Instance == null) { Logger.Error("DamageBoardManager.Instace == null"); } if (DamageBoardManager.Instance != null && DamageBoardManager.Instance.UiCamera == null) { Logger.Error("DamageBoardManager.Instace.UiCamera == null"); } return; } if (ignorePostion) { LabelTransform.localPosition = new Vector3(offsetX, offsetY, 0); } else { var pt = GameLogic.Instance.MainCamera.WorldToScreenPoint(BoardAction.WorldPos); pt /= radio; var ff = DamageBoardManager.Instance.UiCamera.camera.ScreenToWorldPoint(pt); ff.z = 0; LabelTransform.position = ff; BoardAction.ChangePos = new Vector3(offsetX, offsetY, 0); var locPos = LabelTransform.localPosition; var posX = locPos.x + offsetX; var posY = locPos.y + offsetY; LabelTransform.localPosition = new Vector3(posX, posY, 0); } } else { LabelTransform.localPosition = new Vector3(offsetX, offsetY, 0); } LabelTransform.localScale = Vector3.one; Label.gameObject.SetActive(true); Label.alpha = 1.0f; Label.fontSize = Record.FontSize1; BoardAction.ActionStage = DamageBoardActionStage.Stage1; BoardAction.Duration = 0.0f; BoardAction.ScaleChg = Record.EndFontSize1 / 1000.0f; BoardAction.AlphaChg = 0.0f; isDirectivityPos = directivityPos; if (isDirectivityPos) { var targetPos = GameLogic.Instance.MainCamera.WorldToScreenPoint(position).xy(); targetPos /= radio; var vec2Normal = (targetPos - DamageBoardManager.MyPlayerCenterPos).normalized; BoardAction.Speed = vec2Normal * Record.SpeedX1; BoardAction.Accelerate = vec2Normal * Record.AddSpeedX1; } else { BoardAction.Speed = new Vector2(Record.SpeedX1, Record.SpeedY1); BoardAction.Accelerate = new Vector2(Record.AddSpeedX1, Record.SpeedY1); } BoardAction.MaxTime = Record.MoveTime1 / 1000.0f; BoardAction.ignorePostion = ignorePostion; }