Esempio n. 1
0
 public AbstractEnemyState(EnemyController stateMachine)
 {
     this.enemyController = stateMachine;
     if (stateMachine.moveController is IEnemyMoveController2D)
     {
         moveController = (IEnemyMoveController2D)stateMachine.moveController;
     }
 }
Esempio n. 2
0
    public virtual void Start()
    {
        defaultAction.moveTarget = Vector3.positiveInfinity;
        moveController           = GetComponent <IEnemyMoveController2D>();
        aiBehaviour    = GetComponent <AiBehaviour>();
        animator       = GetComponent <Animator>();
        spriteRenderer = GetComponent <SpriteRenderer>();
        hitBox         = GetComponentInChildren <HitBox>();

        if (aiBehaviour && aiBehaviour.enabled)
        {
            aiBehaviour.defaultAction = defaultAction;
            currentAction             = aiBehaviour.GetCurrentAction();
        }
        else
        {
            currentAction = defaultAction;
        }

        boxCollider = GetComponent <BoxCollider2D>();

        hurtBox = GetComponent <HurtBox>();
        if (!hurtBox)
        {
            // search in children
            hurtBox = transform.GetComponentInChildren <HurtBox>();
        }

        // init ENEMY state
        currentState = new EnemyIdleState(this);

        if (randomDelaySeconds > 0)
        {
            delayTime      = Random.Range(0F, randomDelaySeconds);
            animator.speed = 0;
        }
    }