Пример #1
0
        public void createBehaviour(Metadata metadata, BehaviourFactory behaviourFactory)
        {
            if (gameObject.GetComponent <ComponentBehaviour>())
            {
                Debug.LogWarning("ComponentBehaviour is already attached.", transform);
            }
            else
            {
                foreach (var key in Enum.GetValues(typeof(environmentKeys)))
                {
                    if (metadata.containsMetatagKey(key: key.ToString()))
                    {
                        componentBehaviour = behaviourFactory
                                             .CreateBehaviour(gameObject, BaseType.Environment);
                        return;
                    }
                }

                if (metadata.containsMetatagKey(key: "highway"))
                {
                    componentBehaviour = behaviourFactory
                                         .CreateBehaviour(gameObject, BaseType.Road);
                }
                else
                {
                    componentBehaviour = behaviourFactory
                                         .CreateBehaviour(gameObject, BaseType.Unknown);
                }
            }
        }
Пример #2
0
 public void Subscribe(TrafficLighter trafficLighter, string behaviourType, int startPosition)
 {
     trafficLighter.Behaviour = behaviourFactory.CreateBehaviour(behaviourType, startPosition, trafficLighter.Bulbs);
     trafficLighters.Add(trafficLighter);
 }