/// <summary> /// Adds the conveyor unit. /// </summary> public void AddConveyorUnit([NotNull] ConveyorUnit conveyorUnit, bool addToTop = false) { Assert.ArgumentNotNull(conveyorUnit, "conveyorUnit"); foreach (var handledMessageType in conveyorUnit.HandledMessageTypes) { if (!ConveyorUnitsByMessageType.ContainsKey(handledMessageType)) { ConveyorUnitsByMessageType[handledMessageType] = new List <ConveyorUnit>(); } if (addToTop) { ConveyorUnitsByMessageType[handledMessageType].Insert(0, conveyorUnit); } else { ConveyorUnitsByMessageType[handledMessageType].Add(conveyorUnit); } } foreach (var handledCommandType in conveyorUnit.HandledCommandTypes) { if (!ConveyorUnitsByCommandType.ContainsKey(handledCommandType)) { ConveyorUnitsByCommandType[handledCommandType] = new List <ConveyorUnit>(); } if (addToTop) { ConveyorUnitsByCommandType[handledCommandType].Insert(0, conveyorUnit); } else { ConveyorUnitsByCommandType[handledCommandType].Add(conveyorUnit); } } if (addToTop) { _allConveyorUnits.Insert(0, conveyorUnit); } else { _allConveyorUnits.Add(conveyorUnit); } }
IEnumerator ConveyorUnitProcessCoroutine() { GameObject unitObj = Instantiate(SpawnUnit, StartGearTransform.position, Quaternion.identity, UnitContainerTransform); ConveyorUnit unit = unitObj.GetComponent <ConveyorUnit>(); ConveyorUnits.Add(unit); do { yield return(null); unit.totX = Vector3.Distance(EndGearTransform.position, StartGearTransform.position); unit.x += Speed * Time.deltaTime; //unitObj.transform.position = Vector3.Lerp(StartGearTransform.position, EndGearTransform.position, unit.percent); //Vector3 dir= (EndGearTransform.position - StartGearTransform.position).normalized; unit.rigidbody.MovePosition(Vector3.Lerp(StartGearTransform.position, EndGearTransform.position, unit.percent)); }while (unit.percent < 1f); ConveyorUnits.Remove(unit); Destroy(unitObj); }
public Analyzer(IConfigurationProvider provider) : base(provider) { this.provider = provider; CommandExecutor = new CommandExecutor(); TaskExecutor = new TaskExecutor(); Needle = new NeedleUnit(CommandExecutor, provider); Conveyor = new ConveyorUnit(CommandExecutor, provider); Charger = new ChargerUnit(CommandExecutor, provider); Rotor = new RotorUnit(CommandExecutor, provider); Pomp = new PompUnit(CommandExecutor, provider); CommunicationService = new ConnectionService(); LoadConfiguration("AnalyzerServiceConfiguration"); LoadUnitsConfiguration(); SerialCommunicationInit(); SerialCommunicationOpen(); Logger.Debug("Запись работы системы начата"); }