как увеличить скорость бегуна при выборе усилителя

#unity3d

#unity3d

Вопрос:

 if (Collision.ShoeIndicator)
        {
            GameObject p = GameObject.FindGameObjectWithTag ("Player");

            Vector3 t = p.transform.position;

            t.z = powerUpSpeedIncrease1 * Time.deltaTime;

            p.transform.position = t;
        }
  

для увеличения скорости powerUpSpeedIncrease1 я установил 10.0

здесь мой плеер — бесконечный бегун, когда выбран режим включения, мне нужно увеличить скорость проигрывателя, этот код на самом деле false … как я могу увеличить скорость

я использовал таймер, чтобы установить период времени для этого включения

  if(timeleft <= 0)
            {
                //Collision.coinMag = false;
                Collision.ShoeIndicator = false;
                timeleft = 10;
            }
  

Ответ №1:

Вы должны добавить

  transform.position *= powerUpSpeedIncrease1;
  

где вы устанавливаете новую позицию игрока и устанавливаете

  powerUpSpeedIncrease1 = 1;
  

когда игрок не использует ускорение или время использования усиления закончено, и установите

  powerUpSpeedIncrease1 = 10;
  

при выборе усиления

В вашем коде это будет выглядеть так

 if (Collision.ShoeIndicator)
{
  Collision.ShoeIndicator = false; //you can pickup new shoe when you also picked up one
  powerUpSpeedIncrease1 = 10;
  //timeleft = 10;{timer code setting up} 
  //dont forget about the scope! 
  //powerUpSpeedIncrease1 should be available in your playercontroller or 
  //where you controlling player's position
}
  

 if(timeleft <= 0)
{
   powerUpSpeedIncrease1 = 1;
}
  

 update() {
   //decrease timer
}
  

p.s. пример таймера