Esempio n. 1
0
    /// <summary>
    /// Used in create mode, remove a behaviour from an entity instance
    /// </summary>
    public void RemoveBehaviourFromEntity(EntityInstance entity, BehaviourInstanceBase behaviour)
    {
        behaviour.OnDetached(entity);
        entity.DetachBehaviour(behaviour);
        m_RuntimeBehaviours.Remove(behaviour);

        // TODO: recycle to pool
        Destroy(behaviour.gameObject);
    }
Esempio n. 2
0
    /// <summary>
    /// Used in create mode, add a behaviour to an entity instance
    /// </summary>
    public BehaviourInstanceBase AddBehaviourToEntity(EntityInstance entity)
    {
        // TODO: instead of creating a new behaviour instance, replaced with object pooling
        BehaviourInstanceBase behaviour = Instantiate(m_BehaviourPrefab, entity.transform);

        behaviour.transform.localPosition = Vector3.zero;
        behaviour.OnCreated(this);

        m_RuntimeBehaviours.Add(behaviour);
        entity.AttachBehaviour(behaviour);
        behaviour.OnAttached(entity);

        return(behaviour);
    }
Esempio n. 3
0
 public void DetachBehaviour(BehaviourInstanceBase behaviour)
 {
     m_Behaviours.Remove(behaviour);
 }
Esempio n. 4
0
 public void AttachBehaviour(BehaviourInstanceBase behaviour)
 {
     m_Behaviours.Add(behaviour);
 }