Пример #1
0
    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);
    }
Пример #2
0
    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));
    }