• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

C# SkillSystem.SkillInstance类代码示例

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

本文整理汇总了C#中SkillSystem.SkillInstance的典型用法代码示例。如果您正苦于以下问题:C# SkillInstance类的具体用法?C# SkillInstance怎么用?C# SkillInstance使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。



SkillInstance类属于SkillSystem命名空间,在下文中一共展示了SkillInstance类的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C#代码示例。

示例1: Execute

 public override bool Execute(object sender, SkillInstance instance, long delta, long curSectionTime)
 {
     GfxSkillSenderInfo senderObj = sender as GfxSkillSenderInfo;
     if (null == senderObj) return false;
     GameObject obj = senderObj.GfxObj;
     if (null == obj) return false;
     GameObject target = senderObj.TargetGfxObj;
     if (null != senderObj.TrackEffectObj) {
         obj = senderObj.TrackEffectObj;
         target = senderObj.GfxObj;
     }
     if (curSectionTime < StartTime) {
         return true;
     }
     if (m_IsForRoundMove) {
         Vector3 srcPos = obj.transform.position;
         Vector3 targetPos = Vector3.zero;
         if (null != target) {
             targetPos = target.transform.position;
         }
         TriggerUtil.GetSkillStartPosition(srcPos, senderObj.ConfigData, instance, senderObj.ActorId, senderObj.TargetActorId, ref targetPos);
         if (targetPos.sqrMagnitude > Geometry.c_FloatPrecision) {
             instance.CustomDatas.AddData<Vector3>(targetPos);
         }
     } else {
         Vector3 pos = obj.transform.position;
         instance.CustomDatas.AddData<Vector3>(pos);
     }
     return false;
 }
开发者ID:dreamanlan,项目名称:CSharpGameFramework,代码行数:30,代码来源:RestorePosTrigger.cs


示例2: Execute

 public override bool Execute(object sender, SkillInstance instance, long delta, long curSectionTime)
 {
     GfxSkillSenderInfo senderObj = sender as GfxSkillSenderInfo;
     if (null == senderObj) {
         return false;
     }
     GameObject obj = senderObj.GfxObj;
     if (obj == null) {
         return false;
     }
     if (null != senderObj.TrackEffectObj)
         obj = senderObj.TrackEffectObj;
     if (curSectionTime < StartTime) {
         return true;
     }
     Animator animator = obj.GetComponentInChildren<Animator>();
     if (animator != null) {
         float passed_ms = curSectionTime - StartTime;
         if (passed_ms > 0) {
             float old_speed = animator.speed;
             float time = animator.playbackTime;
             time -= old_speed * passed_ms / 1000.0f;
             time += m_Speed * passed_ms / 1000.0f;
             if (time < 0) {
                 time = 0;
             }
             animator.playbackTime = time;
         }
         animator.speed = m_Speed;
         if (m_IsEffectSkillTime) {
             instance.TimeScale = m_Speed;
         }
     }
     return false;
 }
开发者ID:dreamanlan,项目名称:CSharpGameFramework,代码行数:35,代码来源:AnimationTrigger.cs


示例3: Execute

 public override bool Execute(object sender, SkillInstance instance, long delta, long curSectionTime)
 {
     GfxSkillSenderInfo senderObj = sender as GfxSkillSenderInfo;
     if (null == senderObj) return false;
     GameObject obj = senderObj.GfxObj;
     if (null == obj) return false;
     if (null != senderObj.TrackEffectObj) {
         obj = senderObj.TrackEffectObj;
     }
     if (!m_IsResourcePreloaded) {
         PreloadResource(obj, instance);
     }
     if (curSectionTime < StartTime) {
         return true;
     }
     if (m_IsNeedCollide) {
     }
     string random_audio = GetRandomAudio();
     AudioClip clip = ResourceSystem.Instance.GetSharedResource(random_audio) as AudioClip;
     if (null == clip) {
         return false;
     }
     if (m_AudioSource != null) {
         if (m_AudioSource.loop) {
             m_AudioSource.clip = clip;
             m_AudioSource.Play();
         } else {
             m_AudioSource.PlayOneShot(clip);
         }
         m_AudioSource.volume = m_volume;
         m_AudioSource.dopplerLevel = 0f;
     }
     return false;
 }
开发者ID:dreamanlan,项目名称:CSharpGameFramework,代码行数:34,代码来源:SoundTrigger.cs


示例4: Execute

        private string m_Type = "anim"; //anim/impact

        #endregion Fields

        #region Methods

        public override bool Execute(object sender, SkillInstance instance, long delta, long curSectionTime)
        {
            GfxSkillSenderInfo senderObj = sender as GfxSkillSenderInfo;
            if (null == senderObj) return false;
            Scene scene = senderObj.Scene;
            EntityInfo obj = senderObj.GfxObj;
            if (null == obj) return false;
            if (curSectionTime < StartTime) {
                return true;
            }
            if (0 == m_Type.CompareTo("anim")) {
            } else if (0 == m_Type.CompareTo("impact")) {
                int time = scene.EntityController.GetImpactDuration(senderObj.ActorId, senderObj.SkillId, senderObj.Seq);
                if (time > 0) {
                    instance.SetCurSectionDuration((long)time + m_DeltaTime);
                } else {
                    LogSystem.Warn("adjustsectionduration impact duration is 0, skill id:{0} dsl skill id:{1}", senderObj.SkillId, instance.DslSkillId);
                }
            } else {
                int time = TryGetTimeFromConfig(instance);
                if (time > 0) {
                    instance.SetCurSectionDuration((long)time + m_DeltaTime);
                } else {
                    LogSystem.Warn("adjustsectionduration variable time is 0, skill id:{0} dsl skill id:{1}", senderObj.SkillId, instance.DslSkillId);
                }
            }
            return false;
        }
开发者ID:dreamanlan,项目名称:CSharpGameFramework,代码行数:34,代码来源:SectionTrigger.cs


示例5: CreateTriger

 public ISkillTriger CreateTriger(Dsl.ISyntaxComponent trigerConfig, SkillInstance instance)
 {
     ISkillTriger triger = null;
     string type = trigerConfig.GetId();
     ISkillTrigerFactory factory = GetFactory(type);
     if (null != factory) {
         try {
             triger = factory.Create();
             triger.Init(trigerConfig, instance);
         } catch (Exception ex) {
             GameFramework.LogSystem.Error("triger:{0} line:{1} failed.", trigerConfig.ToScriptString(), trigerConfig.GetLine());
             throw ex;
         }
     } else {
     #if !DEBUG
         GameFramework.LogSystem.Error("CreateTriger failed, type:{0}", type);
     #endif
     }
     if (null != triger) {
         GameFramework.LogSystem.Debug("CreateTriger, type:{0} triger:{1}", type, triger.GetType().Name);
     } else {
     #if !DEBUG
         GameFramework.LogSystem.Error("CreateTriger failed, type:{0}", type);
     #endif
     }
     return triger;
 }
开发者ID:dreamanlan,项目名称:CSharpGameFramework,代码行数:27,代码来源:SkillTrigerManager.cs


示例6: AoeQuery

 public static void AoeQuery(GameObject srcObj, GameObject targetObj, int aoeType, float range, float angleOrLength, SkillInstance instance, int senderId, int targetType, Vector3 relativeCenter, bool relativeToTarget, MyFunc<float, int, bool> callback)
 {
     float radian;
     Vector3 center;
     if (null != targetObj && relativeToTarget) {
         Vector3 srcPos = srcObj.transform.position;
         Vector3 targetPos = targetObj.transform.position;
         radian = Geometry.GetYRadian(new ScriptRuntime.Vector2(srcPos.x, srcPos.z), new ScriptRuntime.Vector2(targetPos.x, targetPos.z));
         ScriptRuntime.Vector2 newOffset = Geometry.GetRotate(new ScriptRuntime.Vector2(relativeCenter.x, relativeCenter.z), radian);
         center = targetPos + new Vector3(newOffset.X, relativeCenter.y, newOffset.Y);
     } else {
         radian = Geometry.DegreeToRadian(srcObj.transform.localRotation.eulerAngles.y);
         center = srcObj.transform.TransformPoint(relativeCenter);
     }
     if (aoeType == (int)SkillAoeType.Circle || aoeType == (int)SkillAoeType.Sector) {
         angleOrLength = Geometry.DegreeToRadian(angleOrLength);
         ClientModule.Instance.KdTree.Query(center.x, center.y, center.z, range, (float distSqr, KdTreeObject kdTreeObj) => {
             int targetId = kdTreeObj.Object.GetId();
             if (targetType == (int)SkillTargetType.Enemy && CharacterRelation.RELATION_ENEMY == EntityController.Instance.GetRelation(senderId, targetId) ||
                 targetType == (int)SkillTargetType.Friend && CharacterRelation.RELATION_FRIEND == EntityController.Instance.GetRelation(senderId, targetId)) {
                 bool isMatch = false;
                 if (aoeType == (int)SkillAoeType.Circle) {
                     isMatch = true;
                 } else {
                     ScriptRuntime.Vector2 u = Geometry.GetRotate(new ScriptRuntime.Vector2(0, 1), radian);
                     isMatch = Geometry.IsSectorDiskIntersect(new ScriptRuntime.Vector2(center.x, center.z), u, angleOrLength / 2, range, new ScriptRuntime.Vector2(kdTreeObj.Position.X, kdTreeObj.Position.Z), kdTreeObj.Radius);
                 }
                 if (isMatch) {
                     if (!callback(distSqr, kdTreeObj.Object.GetId())) {
                         return false;
                     }
                 }
             }
             return true;
         });
     } else {
         ScriptRuntime.Vector2 angleu = Geometry.GetRotate(new ScriptRuntime.Vector2(0, angleOrLength), radian);
         ScriptRuntime.Vector2 c = new ScriptRuntime.Vector2(center.x, center.z) + angleu / 2;
         GameFramework.ClientModule.Instance.KdTree.Query(c.X, 0, c.Y, range + angleOrLength / 2, (float distSqr, GameFramework.KdTreeObject kdTreeObj) => {
             int targetId = kdTreeObj.Object.GetId();
             if (targetType == (int)SkillTargetType.Enemy && CharacterRelation.RELATION_ENEMY == EntityController.Instance.GetRelation(senderId, targetId) ||
                 targetType == (int)SkillTargetType.Friend && CharacterRelation.RELATION_FRIEND == EntityController.Instance.GetRelation(senderId, targetId)) {
                 bool isMatch = false;
                 if (aoeType == (int)SkillAoeType.Capsule) {
                     isMatch = Geometry.IsCapsuleDiskIntersect(new ScriptRuntime.Vector2(center.x, center.z), angleu, range, new ScriptRuntime.Vector2(kdTreeObj.Position.X, kdTreeObj.Position.Z), kdTreeObj.Radius);
                 } else {
                     ScriptRuntime.Vector2 half = new ScriptRuntime.Vector2(range / 2, angleOrLength / 2);
                     isMatch = Geometry.IsObbDiskIntersect(c, half, radian, new ScriptRuntime.Vector2(kdTreeObj.Position.X, kdTreeObj.Position.Z), kdTreeObj.Radius);
                 }
                 if (isMatch) {
                     if (!callback(distSqr, kdTreeObj.Object.GetId())) {
                         return false;
                     }
                 }
             }
             return true;
         });
     }
 }
开发者ID:dreamanlan,项目名称:CSharpGameFramework,代码行数:59,代码来源:TriggerUtil.cs


示例7: Load

 protected override void Load(Dsl.CallData callData, SkillInstance instance)
 {
     if (callData.GetParamNum() >= 3) {
         StartTime = long.Parse(callData.GetParamId(0));
         m_RemainTime = long.Parse(callData.GetParamId(1));
         m_RotateSpeed = DslUtility.CalcVector3(callData.GetParam(2) as Dsl.CallData);
     }
 }
开发者ID:dreamanlan,项目名称:CSharpGameFramework,代码行数:8,代码来源:RotateTrigger.cs


示例8: Load

 protected override void Load(Dsl.CallData callData, SkillInstance instance)
 {
     int num = callData.GetParamNum();
     if (num > 0) {
         StartTime = long.Parse(callData.GetParamId(0));
     } else {
         StartTime = 0;
     }
 }
开发者ID:dreamanlan,项目名称:CSharpGameFramework,代码行数:9,代码来源:DamageTrigger.cs


示例9: Load

 protected override void Load(Dsl.CallData callData, SkillInstance instance)
 {
     int num = callData.GetParamNum();
     if (num >= 1) {
         StartTime = long.Parse(callData.GetParamId(0));
     }
     if (num >= 2) {
         m_RemainTime = long.Parse(callData.GetParamId(1));
     }
 }
开发者ID:dreamanlan,项目名称:CSharpGameFramework,代码行数:10,代码来源:GeneralTrigers.cs


示例10: Load

 protected override void Load(Dsl.CallData callData, SkillInstance instance)
 {
     int num = callData.GetParamNum();
     if (num >= 4) {
         StartTime = long.Parse(callData.GetParamId(0));
         m_RelativeOffset.X = float.Parse(callData.GetParamId(1));
         m_RelativeOffset.Y = float.Parse(callData.GetParamId(2));
         m_RelativeOffset.Z = float.Parse(callData.GetParamId(3));
     }
 }
开发者ID:dreamanlan,项目名称:CSharpGameFramework,代码行数:10,代码来源:TransformTrigger.cs


示例11: Load

 protected override void Load(Dsl.CallData callData, SkillInstance instance )
 {
     int num = callData.GetParamNum();
     if (num >= 2) {
         StartTime = long.Parse(callData.GetParamId(0));
         m_Speed = float.Parse(callData.GetParamId(1));
     }
     if (num >= 3) {
         m_IsEffectSkillTime = bool.Parse(callData.GetParamId(2));
     }
 }
开发者ID:dreamanlan,项目名称:CSharpGameFramework,代码行数:11,代码来源:AnimationTrigger.cs


示例12: Load

 protected override void Load(Dsl.CallData callData, SkillInstance instance)
 {
     if (callData.GetParamNum() > 0) {
         m_Type = callData.GetParamId(0);
     }
     if (callData.GetParamNum() > 1) {
         StartTime = long.Parse(callData.GetParamId(1));
     }
     if (callData.GetParamNum() > 2) {
         m_DeltaTime = long.Parse(callData.GetParamId(2));
     }
 }
开发者ID:dreamanlan,项目名称:CSharpGameFramework,代码行数:12,代码来源:SectionTrigger.cs


示例13: Execute

 public override bool Execute(object sender, SkillInstance instance, long delta, long curSectionTime)
 {
     GfxSkillSenderInfo senderObj = sender as GfxSkillSenderInfo;
     if (null == senderObj) return false;
     Scene scene = senderObj.Scene;
     EntityInfo obj = senderObj.GfxObj;
     if (null != obj) {
         if (curSectionTime >= StartTime) {
             int targetType = scene.EntityController.GetTargetType(senderObj.ActorId, senderObj.ConfigData, senderObj.Seq);
             int senderId = 0;
             if (senderObj.ConfigData.type == (int)SkillOrImpactType.Skill) {
                 senderId = senderObj.ActorId;
             } else {
                 senderId = senderObj.TargetActorId;
             }
             string effectPath = SkillParamUtility.RefixResourceVariable(m_EffectPath, instance, senderObj.ConfigData.resources);
             int emitImpact = m_EmitImpact;
             if (!m_IsExternalImpact) {
                 emitImpact = SkillInstance.GenInnerEmitSkillId(m_EmitImpact <= 0 ? 1 : m_EmitImpact);
             }
             int impactId = TriggerUtil.GetSkillImpactId(instance.Variables, senderObj.ConfigData);
             string emitBone = SkillParamUtility.RefixStringVariable(m_EmitBone, instance);
             float emitSpeed = m_EmitSpeed;
             int ct = 0;
             TriggerUtil.AoeQuery(senderObj, instance, senderId, targetType, m_RelativeCenter, m_RelativeToTarget, (float distSqr, int objId) => {
                 Dictionary<string, object> args;
                 TriggerUtil.CalcImpactConfig(emitImpact, impactId, instance, senderObj.ConfigData, out args);
                 Dictionary<string, object> addArgs = new Dictionary<string, object>() { { "emitEffect", effectPath }, { "emitSpeed", emitSpeed }, { "emitDir", m_Dir }, { "emitScale", m_Scale } };
                 foreach (var pair in addArgs) {
                     if (args.ContainsKey(pair.Key)) {
                         args[pair.Key] = pair.Value;
                     } else {
                         args.Add(pair.Key, pair.Value);
                     }
                 }
                 scene.EntityController.TrackImpact(senderObj.ConfigData, senderObj.Seq, senderObj.ActorId, senderId, objId, emitBone, emitImpact, m_Pos, args);
                 ++ct;
                 if (senderObj.ConfigData.maxAoeTargetCount <= 0 || ct < senderObj.ConfigData.maxAoeTargetCount) {
                     return true;
                 } else {
                     return false;
                 }
             });
             //GameFramework.LogSystem.Debug("AoeEmitEffectTriger:{0}", m_EffectPath);
             return false;
         } else {
             return true;
         }
     } else {
         return false;
     }
 }
开发者ID:dreamanlan,项目名称:CSharpGameFramework,代码行数:52,代码来源:EffectTrigger.cs


示例14: Load

 protected override void Load(Dsl.CallData callData, SkillInstance instance)
 {
     int num = callData.GetParamNum();
     if (num >= 4) {
         StartTime = long.Parse(callData.GetParamId(0));
         m_RelativeOffset.x = float.Parse(callData.GetParamId(1));
         m_RelativeOffset.y = float.Parse(callData.GetParamId(2));
         m_RelativeOffset.z = float.Parse(callData.GetParamId(3));
     }
     if (num >= 5) {
         m_IsForRoundMove = callData.GetParamId(4) == "true";
     }
 }
开发者ID:dreamanlan,项目名称:CSharpGameFramework,代码行数:13,代码来源:TransformTrigger.cs


示例15: Execute

 public override bool Execute(object sender, SkillInstance instance, long delta, long curSectionTime)
 {
     GfxSkillSenderInfo senderObj = sender as GfxSkillSenderInfo;
     if (null == senderObj) return false;
     EntityInfo obj = senderObj.GfxObj;
     if (null == obj) return false;
     if (curSectionTime < StartTime) {
         return true;
     }
     Vector3 pos = obj.GetMovementStateInfo().GetPosition3D();
     instance.CustomDatas.AddData<Vector3>(pos);
     return false;
 }
开发者ID:dreamanlan,项目名称:CSharpGameFramework,代码行数:13,代码来源:RestorePosTrigger.cs


示例16: Execute

        public override bool Execute(object sender, SkillInstance instance, long delta, long curSectionTime)
        {
            GfxSkillSenderInfo senderObj = sender as GfxSkillSenderInfo;
            if (null == senderObj) return false;
            Scene scene = senderObj.Scene;
            EntityInfo obj = senderObj.GfxObj;
            if (null == obj) {
                return false;
            }
            if (curSectionTime < StartTime) {
                return true;
            }
            if (m_IsExecuted && curSectionTime > (StartTime + m_RemainTime)) {
                return false;
            }

            Vector3 pos = obj.GetMovementStateInfo().GetPosition3D();
            EntityInfo target = senderObj.TargetGfxObj;
            if (!m_IsExecuted && (null == target || !string.IsNullOrEmpty(m_SelectTargetType))) {
                if (string.IsNullOrEmpty(m_SelectTargetType)) {
                    int targetType = scene.EntityController.GetTargetType(senderObj.ActorId, senderObj.ConfigData, senderObj.Seq);
                    if (targetType == (int)SkillTargetType.Friend || targetType == (int)SkillTargetType.RandFriend)
                        m_RealSelectTargetType = "randfriend";
                    else
                        m_RealSelectTargetType = "randenemy";
                }
                TargetManager mgr = instance.CustomDatas.GetData<TargetManager>();
                if (null == mgr) {
                    mgr = new TargetManager();
                    instance.CustomDatas.AddData(mgr);
                }
                int targetId = scene.EntityController.SelectTargetForSkill(m_RealSelectTargetType, senderObj.ActorId, senderObj.ConfigData, senderObj.Seq, mgr.Targets);
                if (targetId > 0) {
                    mgr.Add(targetId);
                    target = scene.EntityController.GetGameObject(targetId);
                    senderObj.TargetActorId = targetId;
                    senderObj.TargetGfxObj = target;
                }
            }
            if (null != target) {
                m_IsExecuted = true;
                if (!m_IsHaveRotateSpeed || m_RotateSpeed.Y == 0) {
                    TriggerUtil.Lookat(scene, obj, target.GetMovementStateInfo().GetPosition3D());
                } else {
                    float maxRotateDelta = m_RotateSpeed.Y * TriggerUtil.ConvertToSecond(delta);
                    TriggerUtil.Lookat(scene, obj, target.GetMovementStateInfo().GetPosition3D(), maxRotateDelta);
                }
            }
            return true;
        }
开发者ID:dreamanlan,项目名称:CSharpGameFramework,代码行数:50,代码来源:FaceToTargetTrigger.cs


示例17: Execute

 public override bool Execute(object sender, SkillInstance instance, long delta, long curSectionTime)
 {
     GfxSkillSenderInfo senderObj = sender as GfxSkillSenderInfo;
     if (null == senderObj) return false;
     Scene scene = senderObj.Scene;
     EntityInfo obj = senderObj.GfxObj;
     if (obj == null) {
         return false;
     }
     if (curSectionTime < StartTime) {
         return true;
     }
     int senderId = senderObj.ActorId;
     if (senderObj.ConfigData.type != (int)SkillOrImpactType.Skill) {
         senderId = senderObj.TargetActorId;
     }
     int impactId = senderObj.ConfigData.impacttoself;
     if (senderObj.ConfigData.type != (int)SkillOrImpactType.Skill) {
         if (impactId <= 0) {
             int skillId = scene.EntityController.GetImpactSkillId(senderObj.ActorId, senderObj.SkillId, senderObj.Seq);
             TableConfig.Skill cfg = TableConfig.SkillProvider.Instance.GetSkill(skillId);
             if (null != cfg) {
                 impactId = cfg.impacttoself;
             }
         }
     }
     if (m_Radius <= Geometry.c_FloatPrecision) {
         Dictionary<string, object> args;
         TriggerUtil.CalcImpactConfig(0, impactId, instance, senderObj.ConfigData, out args);
         scene.EntityController.SendImpact(senderObj.ConfigData, senderObj.Seq, senderObj.ActorId, senderId, senderId, impactId, args);
     } else {
         EntityInfo targetObj = senderObj.TargetGfxObj;
         int ct = 0;
         List<int> targetIds = new List<int>();
         TriggerUtil.AoeQuery(scene, obj, targetObj, m_AoeType, m_Radius, m_AngleOrLength, instance, senderId, (int)SkillTargetType.Friend, m_RelativeCenter, m_RelativeToTarget, (float distSqr, int objId) => {
             Dictionary<string, object> args;
             TriggerUtil.CalcImpactConfig(0, impactId, instance, senderObj.ConfigData, out args);
             scene.EntityController.SendImpact(senderObj.ConfigData, senderObj.Seq, senderObj.ActorId, senderId, objId, impactId, args);
             targetIds.Add(objId);
             ++ct;
             if (m_MaxCount <= 0 || ct < m_MaxCount) {
                 return true;
             } else {
                 return false;
             }
         });
     }
     return false;
 }
开发者ID:dreamanlan,项目名称:CSharpGameFramework,代码行数:49,代码来源:ImpactTrigger.cs


示例18: Load

 protected override void Load(Dsl.CallData callData, SkillInstance instance)
 {
     int num = callData.GetParamNum();
     if (num >= 6) {
         StartTime = long.Parse(callData.GetParamId(0));
         m_RemainTime = long.Parse(callData.GetParamId(1));
         m_GoPath = callData.GetParamId(2);
         m_ShaderName = callData.GetParamId(3);
         m_StartColor = DslUtility.CalcColor(callData.GetParam(4) as Dsl.CallData);
         m_ChangeColor = DslUtility.CalcColor(callData.GetParam(5) as Dsl.CallData);
     }
     if (num >= 7) {
         m_ChangeTime = long.Parse(callData.GetParamId(6));
     }
 }
开发者ID:dreamanlan,项目名称:CSharpGameFramework,代码行数:15,代码来源:ShaderPropertyTrigger.cs


示例19: Execute

 public override bool Execute(object sender, SkillInstance instance, long delta, long curSectionTime)
 {
     GfxSkillSenderInfo senderObj = sender as GfxSkillSenderInfo;
     if (null == senderObj) return false;
     GameObject obj = senderObj.GfxObj;
     if (null == obj) return false;
     if (null != senderObj.TrackEffectObj)
         obj = senderObj.TrackEffectObj;
     bool isTower = !EntityController.Instance.IsMovableEntity(obj);
     if (isTower)
         return false;
     if (curSectionTime < StartTime) {
         return true;
     }
     if (!m_IsCurveMoving) {
         if (m_IsForRoundMove && m_TargetPos.sqrMagnitude > Geometry.c_FloatPrecision) {
             obj.transform.position = m_TargetPos;
         }
         return false;
     }
     if (!m_IsInited) {
         Init(senderObj, instance);
     }
     if (m_SectionListCopy.Count == 0) {
         m_IsCurveMoving = false;
         return false;
     }
     m_Now += TriggerUtil.ConvertToSecond((long)(instance.OriginalDelta * instance.MoveScale));
     MoveSectionInfo cur_section = m_SectionListCopy[0];
     if (m_Now - cur_section.startTime > cur_section.moveTime) {
         float end_time = cur_section.startTime + cur_section.moveTime;
         float used_time = end_time - cur_section.lastUpdateTime;
         cur_section.curSpeedVect = Move(obj, cur_section.curSpeedVect, cur_section.accelVect, used_time);
         m_SectionListCopy.RemoveAt(0);
         if (m_SectionListCopy.Count > 0) {
             cur_section = m_SectionListCopy[0];
             cur_section.startTime = end_time;
             cur_section.lastUpdateTime = end_time;
             cur_section.curSpeedVect = cur_section.speedVect;
         } else {
             m_IsCurveMoving = false;
         }
     } else {
         cur_section.curSpeedVect = Move(obj, cur_section.curSpeedVect, cur_section.accelVect, m_Now - cur_section.lastUpdateTime);
         cur_section.lastUpdateTime = m_Now;
     }
     return true;
 }
开发者ID:dreamanlan,项目名称:CSharpGameFramework,代码行数:48,代码来源:MovementTrigger.cs


示例20: Execute

 public override bool Execute(object sender, SkillInstance instance, long delta, long curSectionTime)
 {
     GfxSkillSenderInfo senderObj = sender as GfxSkillSenderInfo;
     if (null == senderObj) return false;
     GameObject obj = senderObj.GfxObj;
     if (null == obj) {
         EntityController.Instance.RemoveState(senderObj.ActorId, m_State);
         return false;
     }
     if (curSectionTime >= StartTime) {
         EntityController.Instance.AddState(senderObj.ActorId, m_State);
         return false;
     } else {
         return true;
     }
 }
开发者ID:dreamanlan,项目名称:CSharpGameFramework,代码行数:16,代码来源:DamageTrigger.cs



注:本文中的SkillSystem.SkillInstance类示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
C# Graph.GraphPane类代码示例发布时间:2022-05-26
下一篇:
C# SkiaSharp.SKPaint类代码示例发布时间:2022-05-26
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap