Example #1
0
    private void Initialize()
    {
        normalBehaviour     = (CritterBehaviour)gameObject.AddComponent(data.defaultNormalBehaviour.GetType());
        interactBehaviour   = (CritterBehaviour)gameObject.AddComponent(data.defaultInteractBehaviour.GetType());
        eatingBehaviour     = (CritterBehaviour)gameObject.AddComponent(data.defaultEatingBehaviour.GetType());
        sleepBehaviour      = (CritterBehaviour)gameObject.AddComponent(data.defaultSleepBehaviour.GetType());
        threatenedBehaviour = (CritterBehaviour)gameObject.AddComponent(data.defaultThreatenedBehaviour.GetType());
        critterInteractions = new List <CritterInteraction>(data.critterInteractions);
        foreach (CritterInteraction interaction in critterInteractions)
        {
            if (interaction.behaviour != null)
            {
                gameObject.AddComponent(interaction.behaviour.GetType());
            }
        }
        dropItem      = data.dropItem;
        scaleVariance = Random.Range(0.75f, 1.25f);
        //float yPosition = scaleVariance / 2f;
        float xScale = transform.localScale.x;
        float yScale = transform.localScale.y;

        transform.localScale = new Vector3(scaleVariance * xScale, scaleVariance * yScale, 1);
        //transform.position = new Vector3(transform.position.x, yPosition, transform.position.z);
        interactDistance *= scaleVariance;
    }
 CritterBehaviour UpdateBehaviourComponent(CritterBehaviour behaviour)
 {
     CritterBehaviour[] currentBehaviours = GetComponents <CritterBehaviour>();
     foreach (CritterBehaviour cb in currentBehaviours)
     {
         if (cb.GetType() == behaviour.GetType())
         {
             return(cb);
         }
     }
     return(null);
 }
    public void AddNewInteraction(Interactables tag, State state, CritterBehaviour behaviour = null)
    {
        foreach (CritterInteraction interaction in critter.critterInteractions)
        {
            if (interaction.interactableTag == tag)
            {
                if (interaction.inducedState == state)
                {
                    return;
                }
                else
                {
                    critter.critterInteractions.Remove(interaction);
                    break;
                }
            }
        }
        CritterInteraction newInteraction = new CritterInteraction();

        newInteraction.interactableTag = tag;
        newInteraction.inducedState    = state;
        newInteraction.behaviour       = behaviour;
        critter.critterInteractions.Add(newInteraction);
    }