Вопрос про колеса в Unity3d. - Форум Игроделов
Пн, 20 Май 2024, 05:55 
 
Приветствую Вас Гость Главная | Регистрация | Вход
Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Форум Игроделов » UNITY3D » ОБЩИЕ ВОПРОСЫ » Вопрос про колеса в Unity3d.
Вопрос про колеса в Unity3d.
aleksandorДата: Вс, 18 Май 2014, 17:33 | Сообщение # 1
Нет аватара
 
Сообщений: 4
Награды: 0
Репутация: 0
Статус: Offline
Использую Wheel Collider и простейший скрипт, но есть одна проблема: если автомобиль стоит на колесах он едет, а если предположить что автомобиль плоский и если он перевернется, он не поедет. Помогите решить. Хотелось бы чтобы можно было ехать и с перевернутой машиной.
Как я понимаю, скрипт работает только для нижней половины окружности Wheel Collider-а.

Ссылка на используемый скрипт:


Есть ли какая нибудь альтернатива? С нетерпением жду ответа и помощи! =)
Извините, с Unity3d знаком половину недели и программирую не очень.
 
СообщениеИспользую Wheel Collider и простейший скрипт, но есть одна проблема: если автомобиль стоит на колесах он едет, а если предположить что автомобиль плоский и если он перевернется, он не поедет. Помогите решить. Хотелось бы чтобы можно было ехать и с перевернутой машиной.
Как я понимаю, скрипт работает только для нижней половины окружности Wheel Collider-а.

Ссылка на используемый скрипт:


Есть ли какая нибудь альтернатива? С нетерпением жду ответа и помощи! =)
Извините, с Unity3d знаком половину недели и программирую не очень.

Автор - aleksandor
Дата добавления - 18 Май 2014 в 17:33
HunjethДата: Вс, 18 Май 2014, 18:29 | Сообщение # 2
 
Сообщений: 354
Награды: 1
Репутация: 112
Статус: Offline
у колеса есть RaycastHit который определяет когда машина на земле, тебе надо колесо перевернуть вместе с машиной.
Когда машина наклониться больше 180 гр переворачивай колеса.
Есть 2 вариант, сделай дубликат колес в перевернутом виде.


Сообщение отредактировал Hunjeth - Вс, 18 Май 2014, 18:30
 
Сообщениеу колеса есть RaycastHit который определяет когда машина на земле, тебе надо колесо перевернуть вместе с машиной.
Когда машина наклониться больше 180 гр переворачивай колеса.
Есть 2 вариант, сделай дубликат колес в перевернутом виде.

Автор - Hunjeth
Дата добавления - 18 Май 2014 в 18:29
aleksandorДата: Вс, 18 Май 2014, 18:32 | Сообщение # 3
Нет аватара
 
Сообщений: 4
Награды: 0
Репутация: 0
Статус: Offline
Обьясни понятнее пожалуйста)
 
СообщениеОбьясни понятнее пожалуйста)

Автор - aleksandor
Дата добавления - 18 Май 2014 в 18:32
HunjethДата: Вс, 18 Май 2014, 19:19 | Сообщение # 4
 
Сообщений: 354
Награды: 1
Репутация: 112
Статус: Offline
удалено

Сообщение отредактировал Hunjeth - Пн, 19 Май 2014, 17:31
 
Сообщениеудалено

Автор - Hunjeth
Дата добавления - 18 Май 2014 в 19:19
aleksandorДата: Вс, 18 Май 2014, 19:33 | Сообщение # 5
Нет аватара
 
Сообщений: 4
Награды: 0
Репутация: 0
Статус: Offline
Цитата Hunjeth ()
Тебе надо перевернуть "WheelCollider" на 180гр при условии что скорость машины и вес будет меньше гравитации (-9.81).
вот так как на рисунке..


Спасибо Hunjeth, я не дождался ответа, начал переделывать всю машину с нуля...
Я дублировал Wheel Colliders с новым perfab, а затем перевернул их.
Как я понимаю, мне придется повесить на GO Car два скрипта, один тот который приведен в примере, второй для верхней (отраженной) стороны.
Необходимо изменить в таком случае скрипт, чувствую иначе будет проблема с центром масс.
Вероятно это стоит сделать через триггер под машиной. Если активирован, то скрипт для нижней части включен, иначе для верней.
Но я не умею пользоваться тригеррами еще, помоги с этим пожалуйста.
 
Сообщение
Цитата Hunjeth ()
Тебе надо перевернуть "WheelCollider" на 180гр при условии что скорость машины и вес будет меньше гравитации (-9.81).
вот так как на рисунке..


Спасибо Hunjeth, я не дождался ответа, начал переделывать всю машину с нуля...
Я дублировал Wheel Colliders с новым perfab, а затем перевернул их.
Как я понимаю, мне придется повесить на GO Car два скрипта, один тот который приведен в примере, второй для верхней (отраженной) стороны.
Необходимо изменить в таком случае скрипт, чувствую иначе будет проблема с центром масс.
Вероятно это стоит сделать через триггер под машиной. Если активирован, то скрипт для нижней части включен, иначе для верней.
Но я не умею пользоваться тригеррами еще, помоги с этим пожалуйста.

Автор - aleksandor
Дата добавления - 18 Май 2014 в 19:33
HunjethДата: Вс, 18 Май 2014, 19:51 | Сообщение # 6
 
Сообщений: 354
Награды: 1
Репутация: 112
Статус: Offline
удалено

Сообщение отредактировал Hunjeth - Пн, 19 Май 2014, 17:31
 
Сообщениеудалено

Автор - Hunjeth
Дата добавления - 18 Май 2014 в 19:51
aleksandorДата: Пн, 19 Май 2014, 05:16 | Сообщение # 7
Нет аватара
 
Сообщений: 4
Награды: 0
Репутация: 0
Статус: Offline
Вообщем, собрал машинку, сделал два скрипта, один отвечает за обычную езду, другой за езду вверх ногами.
Нужно что то придумать, чтобы переключаться между скриптами.
Помогите пожалуйста =3

Вот проект:

Добавлено (19 Май 2014, 05:16)
---------------------------------------------
Вопрос решен)

Код
using UnityEngine;
using System.Collections;

public class Trigger : MonoBehaviour {
  public GameObject CarUD;
  public GameObject camera;
  public GameObject cameraUp;
   
  // Use this for initialization
  void Start () {}
   
  // Update is called once per frame
  void Update () {}
   
  void OnTriggerEnter (Collider other)
  {
   if (other.tag == "GameController")
   {
    CarUD.GetComponent<CarController>().enabled = false;
    CarUD.GetComponent<CarControllerUp>().enabled = true;
    camera.SetActive(false);
    cameraUp.SetActive(true);    
   }
  }
  void OnTriggerExit (Collider other)
  {
   if (other.tag == "GameController")
   {
    CarUD.GetComponent<CarController>().enabled = true;
    CarUD.GetComponent<CarControllerUp>().enabled = false;
    camera.SetActive(false);
    cameraUp.SetActive(true);
   }
  }
}


Сообщение отредактировал aleksandor - Пн, 19 Май 2014, 03:28
 
СообщениеВообщем, собрал машинку, сделал два скрипта, один отвечает за обычную езду, другой за езду вверх ногами.
Нужно что то придумать, чтобы переключаться между скриптами.
Помогите пожалуйста =3

Вот проект:

Добавлено (19 Май 2014, 05:16)
---------------------------------------------
Вопрос решен)

Код
using UnityEngine;
using System.Collections;

public class Trigger : MonoBehaviour {
  public GameObject CarUD;
  public GameObject camera;
  public GameObject cameraUp;
   
  // Use this for initialization
  void Start () {}
   
  // Update is called once per frame
  void Update () {}
   
  void OnTriggerEnter (Collider other)
  {
   if (other.tag == "GameController")
   {
    CarUD.GetComponent<CarController>().enabled = false;
    CarUD.GetComponent<CarControllerUp>().enabled = true;
    camera.SetActive(false);
    cameraUp.SetActive(true);    
   }
  }
  void OnTriggerExit (Collider other)
  {
   if (other.tag == "GameController")
   {
    CarUD.GetComponent<CarController>().enabled = true;
    CarUD.GetComponent<CarControllerUp>().enabled = false;
    camera.SetActive(false);
    cameraUp.SetActive(true);
   }
  }
}

Автор - aleksandor
Дата добавления - 19 Май 2014 в 05:16
HunjethДата: Пн, 19 Май 2014, 19:40 | Сообщение # 8
 
Сообщений: 354
Награды: 1
Репутация: 112
Статус: Offline
Сори я вчера спал подчти понаписал тут, вообщем самый лучший вариант это перевернуть колеса и камеру вместе с машиной, центр массы переместить по коорд. Y через Mathf.SmoothDamp или Mathf.Lerp.

Сообщение отредактировал Hunjeth - Пн, 19 Май 2014, 19:44
 
СообщениеСори я вчера спал подчти понаписал тут, вообщем самый лучший вариант это перевернуть колеса и камеру вместе с машиной, центр массы переместить по коорд. Y через Mathf.SmoothDamp или Mathf.Lerp.

Автор - Hunjeth
Дата добавления - 19 Май 2014 в 19:40
Форум Игроделов » UNITY3D » ОБЩИЕ ВОПРОСЫ » Вопрос про колеса в Unity3d.
  • Страница 1 из 1
  • 1
Поиск:
Загрузка...

Game Creating CommUnity © 2009 - 2024