Example #1
0
    public override AINodeResult Execute(ref AINode lastRunningNode, AIMember aiMember)
    {
        GGAIMember member = aiMember as GGAIMember;

        if (CharManager.Instance == null)
        {
            return(AINodeResult.Failure);
        }

        if (CharManager.Instance.MainChar == null)
        {
            return(AINodeResult.Failure);
        }

        Vector3 playerPos = CharManager.Instance.MainChar.transform.position;
        Vector3 myPos     = member.Self.transform.position;
        Vector3 dir       = playerPos - member.Self.transform.position;

        Bullet b = Object.Instantiate(_b);

        b.transform.position = myPos;

        Vector3 target = playerPos + dir.normalized;

        b.transform.DOMove(target, _range / _speed);

        return(AINodeResult.Success);
    }
Example #2
0
    public override AINodeResult Execute(ref AINode lastRunningNode, AIMember aiMember)
    {
        GGAIMember member = aiMember as GGAIMember;

        member.Self.ChangeNav(_nav);
        return(AINodeResult.Success);
    }
Example #3
0
    public override AINodeResult Execute(ref AINode lastRunningNode, AIMember aiMember)
    {
        GGAIMember    member = aiMember as GGAIMember;
        CharInterface player = CharManager.Instance.MainChar;

        member.Self.transform.DOMove(player.transform.position, 0.3f).OnComplete(() =>
        {
            player.TakeDamage(_damage);
        });

        return(AINodeResult.Success);
    }