Пример #1
0
        IEnumerator Start()
        {
            Sequence root = new Sequence();

            Selector selector = new Selector();

            Sequence attackSequence = new Sequence();

            Node isAlivedBehavior = new IsAlivedBehavior(this);
            Node detectBehavior   = new DetectBehavior(this);
            Node attackBehavior   = new AttackBehavior(this);
            Node patrolBehavior   = new PatrolBehavior(this);

            root.AddChild(selector);

            root.AddChild(isAlivedBehavior);

            selector.AddChild(attackSequence);

            attackSequence.AddChild(detectBehavior);
            attackSequence.AddChild(attackBehavior);

            selector.AddChild(patrolBehavior);

            while (root.Invoke())
            {
                yield return(null);
            }
        }
    private GameObject projObject;            // arm sprite as a gameobject

    void Awake()
    {
        patrolBehavior = GetComponent <PatrolBehavior>();
        animator       = GetComponent <Animator>();
        atkReadyTime   = Time.time;

        // inti setup for projectile
        projObject = new GameObject(name + " projectile");
        projObject.transform.position = transform.position;
        projObject.AddComponent <SpriteRenderer>();
        projObject.GetComponent <SpriteRenderer>().sprite = projectileSprite;
        projObject.SetActive(false);
    }