public void DestroySkillPointer() { if (this.mSkillPointer.IsValid <SkillPointer>()) { this.mSkillPointer.Release(); } this.mSkillPointer = null; }
public static void ShowCirclePointer(Units self, float inAttackRange, float inEffectRange) { if (SkillPointerManager._circlePointer == null) { SkillPointerManager._circlePointer = SkillPointerManager.CreateCirclePointer(self); } CirclePointer component = SkillPointerManager._circlePointer.Component; if (!component.isShow) { component.Show(); } component.followBehavior.isActive = true; component.SetEffectRange(inEffectRange); component.SetAttackRange(inAttackRange); }
public static void ShowLinePointer(Units self, Vector3 direct, float width = 0f, float length = 0f) { if (SkillPointerManager._linePointer == null) { SkillPointerManager._linePointer = SkillPointerManager.CreateLinePointer(self); } LinePointer component = SkillPointerManager._linePointer.Component; if (!component.isShow) { component.Show(); } component.followBehavior.isActive = true; if (width != 0f && length != 0f) { component.SetEffectRange(width, length); } component.SetDirect(direct); }
public static ResourceHandleWrapper <SkillPointer> CreateSkillPointer(Units self, string skill_id, float distance) { ResourceHandle resourceHandle = null; Skill skillById = self.getSkillById(skill_id); int num = skillById.castingType; if (skillById.data.IsUseSkillPointer) { num = (int)skillById.data.SkillPointerType; } switch (num) { case 1: resourceHandle = MapManager.Instance.SpawnResourceHandle("LinePointer", null, 0); break; case 2: resourceHandle = MapManager.Instance.SpawnResourceHandle("CirclePointer", null, 0); break; case 3: { float num2 = 45f; if (skillById.data.IsUseSkillPointer) { num2 = skillById.data.SectorPointerAngle; } if (Math.Abs(num2 - 20f) < 1f) { resourceHandle = MapManager.Instance.SpawnResourceHandle("SectorPointer20", null, 0); } else if (Math.Abs(num2 - 30f) < 1f) { resourceHandle = MapManager.Instance.SpawnResourceHandle("SectorPointer30", null, 0); } else if (Math.Abs(num2 - 45f) < 1f) { resourceHandle = MapManager.Instance.SpawnResourceHandle("SectorPointer45", null, 0); } else if (Math.Abs(num2 - 60f) < 1f) { resourceHandle = MapManager.Instance.SpawnResourceHandle("SectorPointer60", null, 0); } break; } default: resourceHandle = MapManager.Instance.SpawnResourceHandle("CirclePointer", null, 0); break; } if (resourceHandle == null) { return(null); } Transform raw = resourceHandle.Raw; raw.gameObject.layer = LayerMask.NameToLayer("SkillPointer"); EffectFollowBehavior effectFollowBehavior = raw.gameObject.GetComponent <EffectFollowBehavior>(); if (effectFollowBehavior == null) { effectFollowBehavior = raw.gameObject.AddComponent <EffectFollowBehavior>(); } effectFollowBehavior.SetFollowObj(self.transform, Vector3.up / 5f); raw.position = self.transform.position + Vector3.up / 5f; raw.localRotation = Quaternion.Euler(Vector3.zero); SkillPointer component = raw.GetComponent <SkillPointer>(); component.theurgist = self; component.CreateSkillPointer(skillById.skillMainId, skillById.distance, skillById.effect_range1, skillById.effect_range2); ResourceHandleWrapper <SkillPointer> resourceHandleWrapper = new ResourceHandleWrapper <SkillPointer>(resourceHandle); self.mSkillPointer = resourceHandleWrapper; return(resourceHandleWrapper); }