Esempio n. 1
0
        public override bool Execute(object sender, SkillInstance instance, long delta, long curSectionTime)
        {
            if (curSectionTime < m_StartTime)
            {
                return(true);
            }
            GameObject obj = sender as GameObject;

            if (obj == null)
            {
                return(false);
            }
            switch (m_RelativeType)
            {
            case "RelativeOwner":
                SetTransformRelativeOwner(obj);
                break;

            case "RelativeSelf":
                SetTransformRelativeSelf(obj);
                break;

            case "RelativeTarget":
                SetTransformRelativeTarget(obj, instance.CustomDatas.GetData <MoveTargetInfo>());
                break;

            case "RelativeWorld":
                obj.transform.position = m_Postion;
                obj.transform.rotation = UnityEngine.Quaternion.Euler(m_Rotate);
                break;
            }
            if (m_IsUseTerrainHeight)
            {
                UnityEngine.Vector3 terrain_pos = TriggerUtil.GetGroundPos(obj.transform.position);
                obj.transform.position = terrain_pos;
            }
            TriggerUtil.UpdateObjWantDir(obj);
            TriggerUtil.UpdateObjTransform(obj);
            return(false);
        }