Переключение управления - Форум Игроделов
Пт, 17 Май 2024, 06:35 
 
Приветствую Вас Гость Главная | Регистрация | Вход
Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Форум Игроделов » UNITY3D » СКРИПТИНГ » Переключение управления (Связано с переключением управления игрока и машины)
Переключение управления
Thedrhax14Дата: Ср, 23 Июл 2014, 10:41 | Сообщение # 1
 
Сообщений: 54
Награды: 0
Репутация: 1
Статус: Offline
Всем привет
Я довольно давно создавал здесь тему про включения инвентаря и выключения. Ну как мне сказал сделать commandoby все работало. И хотел тоже самое проделать с переключением управления перса и машины... Ну и не получилось((
Код
// car control - character control
#pragma strict   

var Player: GameObject;
var Spawn: Transform;
var CarControl:Car;
var cam:GameObject;
var Sitting:boolean;
private var Fix:int;

function Update()
{
if (Sitting == true)
{
if (Input.GetKeyDown(KeyCode.E))
{
Player.active = true;
Player.transfrom.position = spawn.position;
CarControl.GetComponent(Car).enabled = false;
cam.active=false;
Sitting = false;
}
Fix -= Time.deltaTime;
}
}

function OnTriggerStay(other : Collider)
{
if ( other.name == "Player" && Input.GetKeyDown(KeyCode.E) && !Sitting && Fix < 1)
{
Player.active = false;
CarControl.GetComponent(Car).enabled = true;
cam.active=true;
Sitting = true;
Fix += 5;
}
}

Это скрипт должен выключить полностью перса и включать скрипт управления машины и камеру, а еще ,при выходе из машины, выключить скрипт машины и камеру, а потом включить перса и сделают position = spawn ну то есть где дверь машины. К сожалению никак не работает, если подойти к двери ( точнее где триггер ) и нажать E то перс а одну сек заходит в машину и тут же выходит. Помогите исправить.


Виду блог про разроботку игр и про свои проекты https://thedrhax14.wordpress.com/

Сообщение отредактировал Thedrhax14 - Ср, 23 Июл 2014, 10:42
 
СообщениеВсем привет
Я довольно давно создавал здесь тему про включения инвентаря и выключения. Ну как мне сказал сделать commandoby все работало. И хотел тоже самое проделать с переключением управления перса и машины... Ну и не получилось((
Код
// car control - character control
#pragma strict   

var Player: GameObject;
var Spawn: Transform;
var CarControl:Car;
var cam:GameObject;
var Sitting:boolean;
private var Fix:int;

function Update()
{
if (Sitting == true)
{
if (Input.GetKeyDown(KeyCode.E))
{
Player.active = true;
Player.transfrom.position = spawn.position;
CarControl.GetComponent(Car).enabled = false;
cam.active=false;
Sitting = false;
}
Fix -= Time.deltaTime;
}
}

function OnTriggerStay(other : Collider)
{
if ( other.name == "Player" && Input.GetKeyDown(KeyCode.E) && !Sitting && Fix < 1)
{
Player.active = false;
CarControl.GetComponent(Car).enabled = true;
cam.active=true;
Sitting = true;
Fix += 5;
}
}

Это скрипт должен выключить полностью перса и включать скрипт управления машины и камеру, а еще ,при выходе из машины, выключить скрипт машины и камеру, а потом включить перса и сделают position = spawn ну то есть где дверь машины. К сожалению никак не работает, если подойти к двери ( точнее где триггер ) и нажать E то перс а одну сек заходит в машину и тут же выходит. Помогите исправить.

Автор - Thedrhax14
Дата добавления - 23 Июл 2014 в 10:41
commandobyДата: Ср, 23 Июл 2014, 13:27 | Сообщение # 2
Unity 3D Free
 
Сообщений: 836
Награды: 3
Репутация: 211
Статус: Offline
Ну... Для начала разберись со своим Fix. В твоём скрипте Fix может принять только целые числа (int), но каждый кадр, когда Sitting == true, ты отнимаешь от него дробь (Time.deltaTime ~~ 0.033).
Код
private var Fix : float;

Добавлено (23 Июл 2014, 13:27)
---------------------------------------------
И здесь то же надо добавить "тайминг переменную float", которая будет разрешать нажатие только если она меньше 0 (или любого другого значения); при нажатии на кнопку её увеличивать, а если она больше чем 0 то уменьшать на 1 в секунду. Твоя переменная Sitting, которая для этого скорее всего и предназначена - не справляется.


Блог.

Сообщение отредактировал commandoby - Ср, 23 Июл 2014, 13:21
 
СообщениеНу... Для начала разберись со своим Fix. В твоём скрипте Fix может принять только целые числа (int), но каждый кадр, когда Sitting == true, ты отнимаешь от него дробь (Time.deltaTime ~~ 0.033).
Код
private var Fix : float;

Добавлено (23 Июл 2014, 13:27)
---------------------------------------------
И здесь то же надо добавить "тайминг переменную float", которая будет разрешать нажатие только если она меньше 0 (или любого другого значения); при нажатии на кнопку её увеличивать, а если она больше чем 0 то уменьшать на 1 в секунду. Твоя переменная Sitting, которая для этого скорее всего и предназначена - не справляется.


Автор - commandoby
Дата добавления - 23 Июл 2014 в 13:27
Thedrhax14Дата: Ср, 23 Июл 2014, 15:42 | Сообщение # 3
 
Сообщений: 54
Награды: 0
Репутация: 1
Статус: Offline
Commandoby
Хорошо попробую


Виду блог про разроботку игр и про свои проекты https://thedrhax14.wordpress.com/
 
СообщениеCommandoby
Хорошо попробую

Автор - Thedrhax14
Дата добавления - 23 Июл 2014 в 15:42
Форум Игроделов » UNITY3D » СКРИПТИНГ » Переключение управления (Связано с переключением управления игрока и машины)
  • Страница 1 из 1
  • 1
Поиск:
Загрузка...

Game Creating CommUnity © 2009 - 2024