Создайте новый экземпляр и переопределите класс - PullRequest
0 голосов
/ 15 февраля 2019

Моя проблема в том, что у меня есть плагин, и в этом плагине мне нужно получить конкретную переменную логического типа.У него 2 сценария, вот сценарий.

RCC_SETTING: ScriptableObject

// Main Controller Settings
public bool useAutomaticGear = true;

RCC_CARCONTROLLERV3

public bool automaticGear{get{return RCCSettings.useAutomaticGear;}}

СейчасЯ создал свой собственный скрипт под названием

MANUALTRANSMISSION

private void Start()
{
    RCC_Settings RCCSettings = new RCC_Settings();
    RCCSettings.useAutomaticGear = false;
}
private void Update()
{
    if (Input.GetKeyDown(KeyCode.Space))
    {
        this.GetComponent<RCC_CarControllerV3>().currentGear += 1;
    }
}

Что он делает, так это то, что он не переключает передачу, пока я не нажму space.Теперь проблема в том, что затрагивается весь игровой объект, имеющий скрипт RCC_CARCONTROLLER.Я хочу что-то вроде переопределить это так, что только мой игрок будет тот, кто идет на ручную передачу.

1 Ответ

0 голосов
/ 15 февраля 2019

Это должно быть сделано легко.Сначала создайте этот флаг bool в вашем RCC_CarControllerV3 следующим образом:

public bool isPlayer;

Затем проверьте его на инспекторе вашего игрока (только на нем).

И затем, вместоthis:

this.GetComponent<RCC_CarControllerV3>().currentGear += 1;

Сделайте это:

var controller = this.GetComponent<RCC_CarControllerV3>();
if(controller.isPlayer)
    controller.currentGear += 1;

Но странным фактом здесь является то, что вы упомянули, что это значение изменяется для всех ваших gameObjects (которые имеют этот Компонент).Поскольку GetComponent будет извлекать только компоненты верхнего уровня вашего основного игрового объекта.

Для этого вам потребуется использовать GameObject.GetComponentInChildren .Но вы этим не занимаетесь ...

Пожалуйста, я бы посоветовал вам отредактировать ваш вопрос и добавить больше кода.Таким образом, мы могли бы помочь вам лучше.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...