Я некоторое время боролся за этот код. У меня есть метод для моего плеера, который, когда он собирает определенное количество предметов коллекционирования, идет быстрее. Но я хочу, чтобы мой проигрыватель работал быстрее в течение определенного времени (например, 3 секунды). И счетчик (для коллекционеров) должен вернуться к нулю, поэтому, когда игрок снова собирает определенное количество предметов коллекционирования, он снова идет быстрее и т. Д.Как сделать метод работы за определенный промежуток времени в C# Unity
У меня есть класс для всех моих PowerUp и другого класса: Speder, которые наследуются от PowerUp. Переменная скорости, которая поднимается, когда она собирает определенное количество предметов коллекционирования, находится в моем скрипте игроков: Player0.
PowerUp
using UnityEngine;
using System.Collections;
public class PowerUp : MonoBehaviour
{
public static int counter = 0;
void OnTriggerEnter2D(Collider2D other)
{
if (other.tag == "Player")
{
Speder.BoostThaSpeed();
Destroy(this.gameObject);
counter++;
if (counter == 3)
{
counter = 0;
}
}
}
}
Speder
using UnityEngine;
using System.Collections;
public class Speder : PowerUp
{
public static void BoostThaSpeed()
{
if (counter == 2)
{
Player0.speed = Player0.speed * 2;
}
else if (counter < 2)
{
Player0.speed = Player0.speed = 3.5f;
}
}
void OnGUI()
{
GUI.Box(new Rect(750, 0, 130, 20), "Counter:" + counter);
}
}
Player0
using UnityEngine;
using System.Collections;
public class Player0 : MonoBehaviour
{
// SPEEDVARIABLES
public static float speed = 3.5f;
void Update()
{
// MOVING CODE
if (Input.GetKey(KeyCode.LeftArrow))
{
rigidbody2D.velocity = new Vector2(-speed, rigidbody2D.velocity.y); // - speedForce (om naar links te gaan)
transform.localScale = new Vector3(-0.3f, 0.3f, 0.3f);
}
else if (Input.GetKey(KeyCode.RightArrow))
{
rigidbody2D.velocity = new Vector2(speed, rigidbody2D.velocity.y); // + speedforce (om naar rechts te gaan)
transform.localScale = new Vector3(0.3f, 0.3f, 0.3f);
}
else
{
rigidbody2D.velocity = new Vector2(0, rigidbody2D.velocity.y);
}
}
хотя, я думаю, что вам нужно реорганизовать, чтобы уменьшить использование глобальных объекты – Ewan
Ты сделал мой день сэр! Спасибо огромное! –