/// <summary> /// Инстанцирующий метод /// </summary> /// <param name="shassis">Код шасси</param> /// <param name="instrument">Код инструмента</param> /// <returns>Ссылка на созданного робота</returns> Robot CreateRobot(ShassisEnum shassis, InstrumentsEnum instrument) { Robot product = Instantiate(prototype, new Vector3(0, 0, 0), Quaternion.identity) as Robot; product.SetInstrument(instrument); product.SetShassis(shassis); product.SetVisibility(false); return product; }
/// <summary> /// Инстанцирующий метод /// </summary> /// <param name="shassis">Код шасси</param> /// <param name="instrument">Код инструмента</param> /// <returns>Ссылка на созданного робота</returns> Robot CreateRobot(ShassisEnum shassis, InstrumentsEnum instrument) { Robot product = Instantiate(prototype, new Vector3(0, 0, 0), Quaternion.identity) as Robot; product.SetInstrument(instrument); product.SetShassis(shassis); product.SetVisibility(false); return(product); }
/// <summary> /// Определяет тип шасси по его коду /// </summary> /// <param name="shassis">Код шасси</param> /// <returns>Тип шасси</returns> public static Type TranslateShassisCodeToType(ShassisEnum shassis) { Type shassisType = null; switch (shassis) { case ShassisEnum.None: shassisType = typeof(NullShassis); break; case ShassisEnum.Fly: shassisType = typeof(FlyShassis); break; case ShassisEnum.Jump: shassisType = typeof(JumpShassis); break; case ShassisEnum.Wheel: shassisType = typeof(WheelShassis); break; default: throw new InvalidOperationException("Получен незарегистрированный код шасси"); } return shassisType; }
/// <summary> /// Определяет спрайт шасси по его коду /// </summary> /// <param name="shassis">Код шасси</param> /// <returns>Спрайт шасси</returns> public static Sprite TranslateShassisCodeToSprite(ShassisEnum shassis) { Sprite sprite = null; switch (shassis) { case ShassisEnum.None: sprite = null; break; case ShassisEnum.Fly: sprite = SpriteStorage.instance.flyShassisSprite; break; case ShassisEnum.Jump: sprite = SpriteStorage.instance.jumpShassisSprite; break; case ShassisEnum.Wheel: sprite = SpriteStorage.instance.wheelShassisSprite; break; default: throw new InvalidOperationException("Получен незарегистрированный код инструмента"); } return sprite; }
/// <summary> /// Определяет название шасси по его коду /// </summary> /// <param name="shassis">Код шасси</param> /// <returns>Название шасси</returns> public static string TranslateShassisCodeToName(ShassisEnum shassis) { string shassisName = ""; switch (shassis) { case ShassisEnum.None: shassisName = NullShassis.shassisName; break; case ShassisEnum.Fly: shassisName = FlyShassis.shassisName; break; case ShassisEnum.Jump: shassisName = JumpShassis.shassisName; break; case ShassisEnum.Wheel: shassisName = WheelShassis.shassisName; break; default: throw new InvalidOperationException("Получен незарегистрированный код шасси"); } return shassisName; }
/// <summary> /// Прикрепить шасси к роботу /// </summary> /// <param name="code">Код шасси</param> public void SetShassis(ShassisEnum code) { Type shassis = UtilityFunctions.TranslateShassisCodeToType(code); _shassis = gameObject.AddComponent(shassis) as IShassis; }