Здравствуйте!
Моя цель - создать похожий геймплей ССЫЛКА
Отличие в том, что качаться будет 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
Сам задаю вопросы, сам же на них отвечаю