//class objectMoveInfo //{ // public GameObject obj; // public Vector3 srcPos; //}; //private List<objectMoveInfo> m_aimObjectList = new List<objectMoveInfo>(); //private static GameObject mCenterObj; void DoFocusAction() { //计算位移距离 FunDamageNode fun = m_oneDamageInfo.damageNode.funDamage; //聚怪中心点 Vector3 centerPos = m_transform.position + m_transform.forward.normalized * fun.offDistance; //中间是否有空气墙 Vector3 wallPos = CoreEntry.gBaseTool.GetWallHitPoint(m_transform.position, centerPos); if (!wallPos.Equals(centerPos)) { //存在空气墙 Vector3 dist = wallPos - m_transform.position; dist = dist * 0.9f; //Vector3 wallGroundPos = CoreEntry.gBaseTool.GetGroundPoint(m_transform.position + dist); centerPos = CoreEntry.gBaseTool.GetGroundPoint(centerPos); } if (centerPos.Equals(Vector3.zero)) { centerPos = m_transform.position; } //需要聚集的怪物 List <ActorObj> actors = CoreEntry.gActorMgr.GetAllMonsterActors(); foreach (ActorObj actor in actors) { //对IOS出现怪物不动 报错的异常 进行错误处理 if (GameLogicMgr.checkValid(actor.gameObject) == false) { continue; } ActorObj actorBase = actor; if (!m_skillBase.m_actor.IsAimActorType(actorBase)) { continue; } //伤害对象 if (CoreEntry.gBaseTool.IsPointInCircleXZ(centerPos, actor.transform.position, fun.radius, 1f)) { //isSkillSuccess = true; Vector3 distance = m_transform.position - actor.transform.position; float len = distance.magnitude; distance = m_transform.position + distance; distance = CoreEntry.gBaseTool.GetGroundPoint(distance); TweenPositionY.Begin(actor.gameObject, 0.6f, distance, len); } } StartCoroutine(destroyBox()); }
static public TweenPositionY Begin(GameObject go, float duration, Vector3 pos, float height) { TweenPositionY comp = UITweener.Begin <TweenPositionY>(go, duration); comp.from = comp.value; comp.to = pos; comp.m_heightCurve = CreateMoveCuve(1); comp.style = Style.Once; comp.ignoreTimeScale = false; if (duration <= 0f) { comp.Sample(1f, true); comp.enabled = false; } return(comp); }