コード例 #1
0
        //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());
        }
コード例 #2
0
ファイル: TweenPositionY.cs プロジェクト: midgithub/notes
    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);
    }