2016-11-15 9 views
0

Мне интересно, как предотвратить проигрывание плеера определенной текстуры на территории Unity. Я создал скрипт, который определяет, на какой текстуре находится игрок. Для движения я использую скорость твердого тела, поэтому у меня нет проблем с коллайдерами. Заранее спасибо :)C# Unity - Предотвращение проигрывателя от стояния на определенной текстуре ландшафта

ответ

0

Я хотел бы сделать что-то вроде этого:

Во-первых, создать глобальную переменную lastPos:

Vector3 lastPos; 

Затем установите его на игроков текущей позиции на Start:

void Start() { 
    lastPos = player.gameObject.transform.position; 
} 

Затем в редакторе установите последнюю запятую в текущую позицию игроков. Затем используйте оператор if, чтобы проверить, находится ли проигрыватель на недопустимой текстуре. Если игрок находится на инвалидной текстуре, установить его положение обратно lastPos:

void Update() { 
    if (playerOnInvalidTexture) { 
    player.gameObject.transform.position = lastPos; 
    } 
    lastPos = player.gameObject.transform.position; 
} 

По сути это ставит игрока в действительном положении, когда на инвалидной текстуре.

+0

Не работает ... Это просто глючит. Подождите, не должен ли я сначала проверить, а затем установить lastPost? –

+0

Да, что сделал эту работу, пришлось установить lastPos после проверки, спасибо: D –

+0

Ах да, вы правы, обновляя ответ, чтобы отразить это *. Добро пожаловать, удачи! – KenSchnetz