public override GameObject CreateDroneInstance(DroneFactory factory, bool isAdded, Area area, StartPositionDelegate posDelegate = null) { var direction = Random.Range(0, 4); var newDrone = Object.Instantiate(factory.SetDroneType[DroneType], DroneStartPosition.GetRandomPosition(Size, _area), Quaternion.Euler(0, -45 + 90 * direction, 0), factory.transform); return(newDrone); }
public override GameObject CreateDroneInstance(DroneFactory factory, bool isAdded, Area area, StartPositionDelegate posDelegate = null) { Vector3 pos; if (posDelegate != null) { pos = posDelegate(Size, area); } else { pos = isAdded ? DroneStartPosition.GetRandomCorner(Size, area) : DroneStartPosition.GetRandomPosition(Size, area); } var newDrone = Object.Instantiate(factory.SetDroneType[DroneType], pos, Quaternion.Euler(0, _startDirection + DroneDirection.RandomDirection(_restrictedZone, _coneRange), 0), factory.transform); return(newDrone); }