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); }