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); }
private static ResourceHandleWrapper <CirclePointer> CreateCirclePointer(Units self) { ResourceHandle resourceHandle = MapManager.Instance.SpawnResourceHandle("CirclePointer", null, 0); Transform raw = resourceHandle.Raw; raw.gameObject.SetActive(false); 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 = Vector3.zero; raw.localRotation = Quaternion.Euler(Vector3.up); CirclePointer component = raw.GetComponent <CirclePointer>(); component.theurgist = self; component.followBehavior = effectFollowBehavior; return(new ResourceHandleWrapper <CirclePointer>(resourceHandle)); }