Пример #1
0
    public override void EnterState(AI _owner)
    {
        //Debug.Log("Entering Breed State");
        _owner.animator.Play("Jump");      //play animation when entering state
        breeding = _owner.GetComponent <BreedingController>();
        if (breeding)
        {
            breeding.mother = _owner.critter;
            breeding.father = _owner.seek.Mate.GetComponent <Critter>();
        }

        time = Time.time;
        _owner.StartCoroutine(WaitForAnimation(_owner));
    }
Пример #2
0
    IEnumerator WaitForAnimation(AI _owner)
    {
        yield return(new WaitForSeconds(3));

        breeding = _owner.GetComponent <BreedingController>();
        if (breeding)
        {
            breeding.CreateOffspring();
            breeding.BehavioursCrossover();
            breeding.TraitsCrossover();
        }
        _owner.seek.Target.GetComponent <Critter>().ResetBreed();
        _owner.critter.ResetBreed();
        if (_owner.critter.availableBehaviours.Contains(AI_Wander.instance))
        {
            _owner.stateMachine.ChangeState(AI_Wander.instance);
        }
        if (_owner.critter.availableBehaviours.Contains(AI_Idle.instance))
        {
            _owner.stateMachine.ChangeState(AI_Idle.instance);
        }
    }