Маятниковое движение [РЕШЕНО]
|
|
romeo98 | Дата: Четверг, 18 Декабря 2014, 17:58 | Сообщение # 1 |
участник
Сейчас нет на сайте
| Здравствуйте! Моя цель - создать похожий геймплей ССЫЛКА Отличие в том, что качаться будет 2 объекта: арбалет и стрела. Тут начинаются проблемы... сначала я хотел сделать пустышку, присвоить дочерний объект со спрайтом арбалета и вращать пустышку (т.к. надо вращать у основания ружья, а не центр ружья). Так ружье начинает искажаться. Сделал по-другому:
Код public float sp = 20;
private float timeToChangeDirect; private float timeToReset; private int dir = 1;
void Start() { timeToReset = 60 / sp; timeToChangeDirect = timeToReset; }
void Update () { timeToReset = 60 / sp * 2;
transform.RotateAround(transform.parent.position, Vector3.forward * dir, sp * Time.deltaTime);
if (timeToChangeDirect > 0) timeToChangeDirect -= Time.deltaTime; else { timeToChangeDirect = timeToReset; dir *= -1; } }
Вроде работает, но теперь мне нужно, чтобы стрела вращалась вместе с арбалетом. Если же снова попробовать сделать дочерним стрелу к арбалету, то получится фигня. Как быть? Писать похожий скрипт для стрелы? Или есть другой вариант?
Начал присваивать стреле насильно позицию родителя Код void Update() { transform.position = transform.parent.position; }
Стрела вроде качается правильно! но что делать, если я хочу конец стрелы подвинуть вперед? Чтобы она типо выпирала из арбалета.
Добавлено (18 декабря 2014, 17:58) --------------------------------------------- Блин, сейчас сяду за комп и попробую использовать tranform.localposition Сам задаю вопросы, сам же на них отвечаю
Flist - social platform PuzzleSystem - Open-source Unity Asset [2D] Mission: Defender
Сообщение отредактировал romeo98 - Пятница, 19 Декабря 2014, 00:47 |
|
| |
LetsOffBrains | Дата: Четверг, 18 Декабря 2014, 19:23 | Сообщение # 2 |
Project SoRDeLKa
Сейчас нет на сайте
| this.x = parent.x + delta_range * math.cos(this.angle) this.y = parent.y + delta_range * math.sin(this.angle)
что-то такое банальное не пойдет?
|
|
| |
romeo98 | Дата: Пятница, 19 Декабря 2014, 00:45 | Сообщение # 3 |
участник
Сейчас нет на сайте
| Цитата LetsOffBrains ( ) this.x = parent.x + delta_range * math.cos(this.angle) this.y = parent.y + delta_range * math.sin(this.angle) Было бы хорошо с пояснениями. С математикой у меня хорошо, но я не пойму, тут вы пытаетесь присвоить X чему? Стреле или арбалету? Что вы берете за delta_range? Расстояние, на которое я хочу, чтобы стрела выпирала?
Cделал BUILD . Он работает, но если приглядеться, то видно, как стрела как бы уходит в сторону от предполагаемой траектории. Из-за чего это может быть?
Код самого маятникового движения я написал, а стрелу я отправляю вперед просто: Код transform.Translate(-spArrow * Vector3.up * Time.deltaTime); Стрела - дочерний к объекту, на котором висит скрипт маятника. Сам маятник дочерен к пустышке. Пустышка играет роль точки, вокруг которой и должно все колебаться.
Как избавиться от этого эффекта ухода стрелы в сторону? Может есть альтернативные решения данной задаче, кроме предложения LetsOffBrains? Сейчас попробую с ним разобраться!
Добавлено (19 декабря 2014, 00:45) --------------------------------------------- Нашел проблему. Самый-самый родитель, та точка (вокруг которой все вращается) была масштабирована не правильно. Из-за этого происходила деформация меша стрелы при повороте...
Flist - social platform PuzzleSystem - Open-source Unity Asset [2D] Mission: Defender
Сообщение отредактировал romeo98 - Пятница, 19 Декабря 2014, 00:45 |
|
| |
MANMANA | Дата: Пятница, 19 Декабря 2014, 01:32 | Сообщение # 4 |
почти ветеран
Сейчас нет на сайте
| повесь скрипт на пустышку, затащи в скрипт стрелу и арбалет. RotateAround как есть, а для стрелы через if(если не нажата кнопка) вращаем вокруг пустышки else двигай стрелу Vector3.forward в локальных координатах здесь же и коллизии стрелы с золотом обрабатывать будешь
или у тебя по скрипту на стреле, золоте и арбалете?
http://www.3dbuffer.com/ Текстуры, Unity3D, Blender: Эффекты, скрипты, моделирование, текстурирование, скульптинг VKонтакте 3Dbuffer
Последнее:
Новый раздел "Текстуры"
Как запатентовать, защитить техническое решение, игру, идею
|
|
| |