Добавить скорость для каждого сборного - PullRequest
0 голосов
/ 14 ноября 2018

Привет, ребята, я работаю над какой-то рефлексной игрой в единство, и мне нужен скрипт для каждых 2 или более сборных разрушений, чтобы добавить скорость моему игроку, и мне нужно это постоянное добавление скорости для 2 префбасов.Может ли кто-нибудь помочь мне с тем, что я делаю так:

void OnTriggerEnter(Collider other)
{

        if (other.gameObject.CompareTag("Sphere"))
        {

        count = count + 1;

        if(count >= highScore)
        {
            highScore = count;
            PlayerPrefs.SetInt("highscore", highScore);
            PlayerPrefs.Save();
        }

        SetCount();


        if(count == 2)
        {
            rb.AddForce(0, 0, 50 * forwardForce * Time.deltaTime);
        } 

}

1 Ответ

0 голосов
/ 14 ноября 2018

Я бы порекомендовал сделать Speed свойством класса Player:

public class Player : MonoBehaviour
{
    public float Speed;
}

Вам нужно будет умножить это свойство при перемещении игрока (я полагаю,код похож на этот):

rigidbodyReference.AddForce(0, 0, 50 * Speed * Time.deltaTime);

Затем я бы сделал статический класс GameManager, который будет отслеживать количество префабов:

public static class GameManager : MonoBehaviour
{
    public static PrefabCount;
}

Наконец, я быдобавьте переменную speedIncrement (открытую для инспектора) в качестве свойства вашего класса Player и измените метод OnTriggerEnter:

public float speedIncrement;

// ...

void OnTriggerEnter(Collider other)
{
    // This will reduce unnecessary nesting in your code to make it easier to read
    if (!other.gameObject.CompareTag("Sphere"))
        return;

    // Same thing as GameManager.PrefabCount = GameManager.PrefabCount + 1
    GameManager.PrefabCount++; 

    if (GameManager.PrefabCount >= highScore)
    {
        highScore = GameManager.PrefabCount;
        PlayerPrefs.SetInt("highscore", highScore);
        PlayerPrefs.Save();
    }

    // Use the Modulus operator to determine if the PrefabCount is evenly divisible by 2
    if (GameManager.PrefabCount % 2 == 0)
        Speed += speedIncrement; // Increase speed by whatever value set in the inspector
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...