Вторник, 23 Апреля 2024, 10:11

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Форум игроделов » Движки для разработки игр и сложные системы разработки » Unity » Лишь один клик
Лишь один клик
tetaДата: Воскресенье, 23 Сентября 2018, 20:56 | Сообщение # 1
был не раз
Сейчас нет на сайте
Код
void FixedUpdate()
    {
  if (Input.GetAxisRaw ("InventoryFrameX") == -1)
  {
   if(indexSlotForFrame - 1 >= 0)
   {
    indexSlotForFrame -= 1;
   }
  }
  if (Input.GetAxisRaw ("InventoryFrameX") == 1)
  {
   if(indexSlotForFrame + 1 <= 15)
   {
    indexSlotForFrame += 1;
   }
  }    
  if (Input.GetAxisRaw ("InventoryFrameY") == 1)
  {
   if(indexSlotForFrame - 4 >= 0)
   {
    indexSlotForFrame -= 4;
   }
  }    
  if (Input.GetAxisRaw ("InventoryFrameY") == -1)
  {
   if(indexSlotForFrame + 4 <= 15)
   {
    indexSlotForFrame += 4;
   }
  }
  //для рамки, менять место положение
  frame.transform.parent = slots[indexSlotForFrame].transform;
  frame.transform.position = slots[indexSlotForFrame].transform.position;
    }

По коду, рамка должна менять свое положение и если зажать кнопку, то это рамка летает по всему полю.
Как сделать так, что бы я нажал и она переместилась лишь на одну позицию и для следующего перемещения, надо отпустить кнопку и потом снова нажать.
Или же замедлить эту рамку в скорости, что бы не летала, а медленней перемещалась.
drcrackДата: Понедельник, 24 Сентября 2018, 02:44 | Сообщение # 2
старожил
Сейчас нет на сайте
Почему это вообще происходит в FixedUpdate?
ArtemSДата: Четверг, 27 Сентября 2018, 05:26 | Сообщение # 3
почетный гость
Сейчас нет на сайте
Сделай чтобы при отпуски кнопки менялась ось, а после сдвига сразу обнуляй X и У.

Код

void Update()
    {
        if (Input.GetKeyDown("A"))
        {
           x=-1;           
        }
        //так же на остальные кнопки
        ....
        
        //тут сдвиг
        .....

        х=0;
        y=0;
    }


либо можешь ввести проверку на время, чтобы перемещение шло не чаще 1 секунды.

Код

if (Time.time > cdTime)
{
  cdTime = Time.time +1;
  //код сдвига
  ...
}  


хуяк, хуяк и в продакшн
Форум игроделов » Движки для разработки игр и сложные системы разработки » Unity » Лишь один клик
  • Страница 1 из 1
  • 1
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг