robertono, переменная vel отвечает за движение моего объекта при нажатии на клавишу. В редакторе робит отлично, а вот в билде передвигается неимоверно медленно...
Добавлено (13.12.2013, 00:40) --------------------------------------------- Мда.. Жестоко. То ли это баг, то ли я такой криворукий...
if (ClosestBirthplace != null && dist < 0.15f) ЧТО-ТО ДЕЛАЕМ;
Делаем тестовый запуск в среде и видим, что условие проверяется верно, если в переменной не пусто и расстояние до объекта меньше 0.15 все работает как надо. !НО, если это сбилдить, то условие не проходит, в совершенно идентичных обстоятельствах, даже если в объекте действительно не 0. Далее видоизменяем условие с "!= null" на "!= 0". Производим теже действия и о чудо, и в среде и после билда все работает как надо, условие проверяется корректно. Я возможно что-то не понимаю, но какого дьявола?! Уж извините за эмоции.
public class Car : MonoBehaviour { public Rigidbody rb; public Transform tr; private Vector3 inp = Vector3.zero; private Vector3 vel = Vector3.zero; public float speed; public int RotateSpeed; public float velspeed; public float speed2;
// Use this for initialization void Start () { rb = rigidbody; tr = transform; }
// Update is called once per frame void Update () {
Здравствуйте. Такая проблемка у меня. После билда проект отображается не так, как он отображается при запуске прямо из движка. Я выяснил, что это из-за одной переменной в коде, т.к. убрав ее, результат не изменился, а при запуске из движка от нее многое зависит.
О переменной: Переменная типа Vector3. Вот куски кода, которые связаны с этой переменной:
Код
public Vector3 vel; vel = tr.InverseTransformDirection(rigidbody.velocity); if (vel.sqrMagnitude > 0.001f) vel = Quaternion.Inverse(Quaternion.LookRotation(vel))*vel*Mathf.Sign(vel.z) * velspeed; rb.velocity = tr.TransformDirection (vel + (new Vector3(0f, inp.y * Time.deltaTime * speed, inp.z * Time.deltaTime * speed)));
Что делать? Помогите, пожалуйста. Может знает кто.
Сообщение отредактировал lakoris - Четверг, 12 Декабря 2013, 22:22
kvestpro, ну... я не думал насчет этого.. первая мысль, что пришла в голову - закинуть на сцену несколько разных Plane`s с текстурой воды и выключать и включать их скриптом, тоесть, 1. Действие - включен 1 плайн, выелючены остальные два. 2. действие - включен 2 плайн, остальные выключены... Но это вообще как-то по-еврейски... Поищи на Unity Asset Store что-то, может есть бесплатно)
Здравствуйте. Делаю поворот колеса при нажатии педали газа (По оси X) и при повороте руля (Ось Z). На задние колеса я вот это вот налепил (для движения по оси X):
Код
void Update () { if (Input.GetButton ("Vertical_W")){ transform.Rotate(-15, 0, 0);
} if (Input.GetButton ("Vertical_S")){ transform.Rotate(15, 0, 0);
}
Тоесть, едем вперед - колесо крутится по +15 к X. Назад - по -15.
Поворот передних колес при прокручивании руля - вот так:
Код
if (Input.GetButtonDown ("A")){ transform.Rotate(new Vector3(0, 0, -35)); }
if (Input.GetButtonUp ("A")){ transform.Rotate(new Vector3(0, 0, 35)); }
if (Input.GetButtonDown ("D")){ transform.Rotate(new Vector3(0, 0, 35)); }
if (Input.GetButtonUp ("D")){ transform.Rotate(new Vector3(0, 0, -35)); }
Все работает, но передним колесам тоже надо прикрутить, как и задним, прокручивание при движении. Но Если я еду вперед - изменяется же X, а из-за этого при нажатии влево/вправо колесо поворачивает вообще не туда, куда надо. Что делать? Уверен, есть решение..
Сообщение отредактировал lakoris - Воскресенье, 08 Декабря 2013, 15:15
JonsonsBabe, Большое спасибо тебе! Работает. Я долго наблюдал и искал логику в || в моей проблеме. Не до конца понял, конечно, но все-же, спасибо тебе)
Добавлено (01.12.2013, 14:31) --------------------------------------------- Тему можно закрывать