Форум программистов, компьютерный форум, киберфорум
Наши страницы
Unity, Unity3D
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.83/6: Рейтинг темы: голосов - 6, средняя оценка - 4.83
Спасибо помог
0 / 0 / 1
Регистрация: 02.05.2015
Сообщений: 30
1

Перемещение в пространстве

27.08.2015, 10:49. Просмотров 1179. Ответов 6
Метки нет (Все метки)

Первый вопрос,написал скрипт перемещения в пространстве но там просто увеличиваются\уменьшаются координаты из-за чего мой танк под наклоном может летать,да и двигается он не естественно.Второй вопрос можно ли как то увеличить гравитацию а то ставлю в массу 10 миллионов а он все ровно как пёрышко.Если надо то код скрипта перемещения
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
public class DriveTank : MonoBehaviour {
    public Transform hull;
    public Vector3 DirectForward;
    public Vector3 DirectLeft;
    public Vector3 DirectRight;
    public Vector3 DirectDown;
    // Use this for initialization
    void Start () {
        hull = gameObject.transform;
    }
    
    // Update is called once per frame
    void Update () {
     if(Input.GetKey(KeyCode.UpArrow)) {
            hull.transform.Translate (DirectForward*Time.deltaTime);
        }
        if(Input.GetKey(KeyCode.LeftArrow)) {
            hull.transform.Rotate (DirectLeft*Time.deltaTime);
        }
        if(Input.GetKey(KeyCode.RightArrow)) {
            hull.transform.Rotate (DirectRight*Time.deltaTime);
        }
        if(Input.GetKey(KeyCode.DownArrow)) {
            hull.transform.Translate (DirectDown*Time.deltaTime);
        }
}
}
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.08.2015, 10:49
Ответы с готовыми решениями:

Свободное перемещение в пространстве
Подскажите пожалуйста как можно реализовать свободное перемещение в...

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

Положение персонажа в пространстве для 2d игры
Здравствуйте. Подскажите может кто сталкивался, как можно сделать следующее....

Перемещение объекта
Всем привет. Немного запутался с перемещением.. Игра 2d. Нажимаем в любую точку...

Перемещение объекта
В лист добавляю префабы. Создаю их на сцене с помощью Instantiate. так: ...

6
_Axe_
2 / 2 / 0
Регистрация: 13.10.2014
Сообщений: 12
27.08.2015, 11:57 2
Немного отредактировал твой код:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
public class DriveTank:MonoBehaviour
{
    public float moveSpeed = 1;     //Единицы в секунд
    public float rotateSpeed = 45;  //Градусы в секунду
    void Update()
    {
        if(Input.GetKey(KeyCode.UpArrow))
        {
            transform.Translate(0,0,moveSpeed*Time.deltaTime);
        }
        if(Input.GetKey(KeyCode.LeftArrow))
        {
            transform.Rotate(0,-rotateSpeed*Time.deltaTime,0);
        }
        if(Input.GetKey(KeyCode.RightArrow))
        {
            transform.Rotate(0,rotateSpeed*Time.deltaTime,0);
        }
        if(Input.GetKey(KeyCode.DownArrow))
        {
            transform.Translate(0,0,-moveSpeed*Time.deltaTime);
        }
    }
}
И проверил его на кубе, у которого есть Box Cllider и Rigidbody, всё прекрасно работает, двигается естественно. Попробуй мой скрипт, он должен тебе помочь.
А на счёт гравитации, вот цитата из документации Unity:
Установка Mass одного твёрдого тела больше массы другого твёрдого тела не подразумевает того, что при свободном падении оно будет падать быстрее. Используйте для этого Drag.
0
Спасибо помог
0 / 0 / 1
Регистрация: 02.05.2015
Сообщений: 30
27.08.2015, 13:28  [ТС] 3
Спасибо,но под не естественностью я имел в иду что при резкой остановке он будет из-за импульса приподниматься впереди,а проблемы с гравитацией наверное связанны с размером моего танка вроде бы проставил размер 0.1 так как модель была слишком большая,можно ли как то ещё уменьшить модель без 3д редактора?А в стандартном контроллере я не разобрался как сделано передвижение.

Добавлено через 10 минут
Посмотрел с маленьким кубом выглядит вполне естественно,падает с нормальной скоростью а вот с мой танк как пёрышко.Соотношение размера дефолтного куба и танка.
0
lentinant
96 / 83 / 19
Регистрация: 15.04.2015
Сообщений: 353
Завершенные тесты: 1
27.08.2015, 16:02 4
Попробуйте увеличить массу танка в свойствах Rigidbody.
0
Спасибо помог
0 / 0 / 1
Регистрация: 02.05.2015
Сообщений: 30
27.08.2015, 17:15  [ТС] 5
Так я же написал что увеличивал даже 10 миллионов ставил все ровно медленно падает.
0
Exerion
[Bicycle Reinventor]
296 / 238 / 106
Регистрация: 19.10.2011
Сообщений: 617
Записей в блоге: 2
Завершенные тесты: 2
28.08.2015, 10:57 6
Лучший ответ Сообщение было отмечено Спасибо помог как решение

Решение

Unity's default unit scale is 1 unit = 1 meter, so the scale of your imported mesh is maintained, and applied to physics calculations. For example, a crumbling skyscraper is going to fall apart very differently than a tower made of toy blocks, so objects of different sizes should be modeled to accurate scale.
Now I realize that the size might actually matter in some situation. For example, free fall. The acceleration of an object on Earth is 9.8m/s^2, regardless its mass nor size. But the air resistance is depending on the geometry of the object and will add force opposite to the gravity. If you drop a tiny sphere of mass 1 and a large cube of mass 5, if they both have the same drag of 1 (random value given), the sphere should actually hit the ground first despite being 5 times lighter.
И решение:
You could fix the model import scale so that you can use scale (1,1,1) - this makes things a lot easier: double-click the model in your Project view to open the model Import Settings in the Inspector and change whatever the Scale Factor is to a suitable value, then click the button Apply at the bottom of the page.
Из всего этого я могу сделать вывод, что после импорта модели танка ты изменил его масштаб (увеличил/уменьшил в несколько раз, чтобы он подходил под размеры других объектов). Это не рекомендуется, поскольку в расчётах физики учитывается оригинальный размер модели. Выше описано, как импортировать модель так, чтобы масштаб сразу был правильный.
1
Спасибо помог
0 / 0 / 1
Регистрация: 02.05.2015
Сообщений: 30
28.08.2015, 14:54  [ТС] 7
Спасибо получилось

Добавлено через 22 минуты
появилась новая проблема,мой танк при старте игры телепортируется неизвестно куда хотя так быть не должно,погуглил ничего не нашёл
0
28.08.2015, 14:54
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.08.2015, 14:54

Вращение и перемещение
Всем привет. Короче создал персонажа от первого лица и врага. Как сделать так,...

Unity3D перемещение объектов
Всем привет, помогите пожалуйста исправить 2 скрипта. Они должны переместить...

Одновременное перемещение объектов
День добрый. Развлекаюсь с платформером. Есть парочка вопросов. Есть персонаж...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru