Страница 1 из 2

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

СообщениеДобавлено: 12 фев 2019, 15:21
morpex182
Ребят нужна помощь, как организовать перемещение по нажатию левой клавиши мыши только через центр??? то есть перемещение между внешними шариками ограничить!!!https://ibb.co/vY7X7dp

Re: Помощь в написании скрипта перемещения

СообщениеДобавлено: 12 фев 2019, 16:33
Friend123
Честно? Вообще ничерта не понял - либо уже башка плохо варит к концу рабдня, либо задача горбато описана.
Хоть бы стрелочки какие нарисовал - откуда и куда должен двигать шар, какова траектория движения, чего не должен касаться и т.п.

Re: Помощь в написании скрипта перемещения

СообщениеДобавлено: 12 фев 2019, 23:19
morpex182
Friend123 писал(а):Честно? Вообще ничерта не понял - либо уже башка плохо варит к концу рабдня, либо задача горбато описана.
Хоть бы стрелочки какие нарисовал - откуда и куда должен двигать шар, какова траектория движения, чего не должен касаться и т.п.

Изначально маленьких шарик находится на центральном круге, при нажатии на один из внешних кругов он перемещается в центр круга на который нажали, когда он там окажется, перемещаться между внешними кругами нельзя, то есть чтобы маленькому шарику оказаться на одном из внешних кругов ему нужно попасть сначала в центральный круг а потом уже на любой другой!

Re: Помощь в написании скрипта перемещения

СообщениеДобавлено: 13 фев 2019, 08:31
Friend123
morpex182 писал(а):Изначально маленьких шарик находится на центральном круге, при нажатии на один из внешних кругов он перемещается в центр круга на который нажали, когда он там окажется, перемещаться между внешними кругами нельзя, то есть чтобы маленькому шарику оказаться на одном из внешних кругов ему нужно попасть сначала в центральный круг а потом уже на любой другой!


Ну теперь понятно, а что не получается-то?
Здесь элементарно надо сделать булевую переменную-флаг: если шарик во внешнем круге, то ставим true, а дальше при клике мыши на любой круг идет проверка if(flag == false), то перемещаемся во внешний круг, если true, то не перемещаемся. Тоже самое и с кликом на центральный круг: если flag = true, то перемещаемся в центральный круг.

Re: Помощь в написании скрипта перемещения

СообщениеДобавлено: 13 фев 2019, 14:21
morpex182
Friend123 писал(а):
morpex182 писал(а):Изначально маленьких шарик находится на центральном круге, при нажатии на один из внешних кругов он перемещается в центр круга на который нажали, когда он там окажется, перемещаться между внешними кругами нельзя, то есть чтобы маленькому шарику оказаться на одном из внешних кругов ему нужно попасть сначала в центральный круг а потом уже на любой другой!


Ну теперь понятно, а что не получается-то?
Здесь элементарно надо сделать булевую переменную-флаг: если шарик во внешнем круге, то ставим true, а дальше при клике мыши на любой круг идет проверка if(flag == false), то перемещаемся во внешний круг, если true, то не перемещаемся. Тоже самое и с кликом на центральный круг: если flag = true, то перемещаемся в центральный круг.

А есть какая то возможность кодом описать, а то не понимаю как вешать все на один обработчик клика??? хотя бы примерное описание с использованием функции Vector3.Lerp

Re: Помощь в написании скрипта перемещения

СообщениеДобавлено: 13 фев 2019, 16:58
Friend123
morpex182 писал(а):А есть какая то возможность кодом описать, а то не понимаю как вешать все на один обработчик клика??? хотя бы примерное описание с использованием функции Vector3.Lerp

Скрипт с Lerp написать и повесить на шарик? 0_о

Re: Помощь в написании скрипта перемещения

СообщениеДобавлено: 13 фев 2019, 17:27
morpex182
Friend123 писал(а):
morpex182 писал(а):А есть какая то возможность кодом описать, а то не понимаю как вешать все на один обработчик клика??? хотя бы примерное описание с использованием функции Vector3.Lerp

Скрипт с Lerp написать и повесить на шарик? 0_о

ну или как нибудь по другому организовать передвижение?? я просто совсем недавно начал копаться в unity поэтому не знаю как правильнее будет

Re: Помощь в написании скрипта перемещения

СообщениеДобавлено: 14 фев 2019, 00:00
AngryCat
Если задачу понял правильно, то вот код. Вешай на шарик, а на каждый круг компонент button, и в нем добавь событие, укажи в нем шарик, вызовите метод Going, а в аргумент запихни сам круг.

Синтаксис:
Используется csharp
Public Vector3 pos = Vector3.zero;



Public void Going(GameObject obj){
Pos = Obj.transform.position;
}
Void Update() {
 If(pos != Vector3.zero)
transform.position = Vector3.zero(transform.position, pos, 20 * Time.deltaTime);
}
 

Re: Помощь в написании скрипта перемещения

СообщениеДобавлено: 14 фев 2019, 00:49
waruiyume
transform.position = Vector3.zero(transform.position, pos, 20 * Time.deltaTime);
ШОЗАНАХ O_o

Re: Помощь в написании скрипта перемещения

СообщениеДобавлено: 14 фев 2019, 11:17
morpex182
AngryCat писал(а):Если задачу понял правильно, то вот код. Вешай на шарик, а на каждый круг компонент button, и в нем добавь событие, укажи в нем шарик, вызовите метод Going, а в аргумент запихни сам круг.

Синтаксис:
Используется csharp
Public Vector3 pos = Vector3.zero;



Public void Going(GameObject obj){
Pos = Obj.transform.position;
}
Void Update() {
 If(pos != Vector3.zero)
transform.position = Vector3.zero(transform.position, pos, 20 * Time.deltaTime);
}
 


не получилось пробовал!

Re: Помощь в написании скрипта перемещения

СообщениеДобавлено: 14 фев 2019, 19:54
AngryCat
morpex182 писал(а):
AngryCat писал(а):Если задачу понял правильно, то вот код. Вешай на шарик, а на каждый круг компонент button, и в нем добавь событие, укажи в нем шарик, вызовите метод Going, а в аргумент запихни сам круг.

Синтаксис:
Используется csharp
Public Vector3 pos = Vector3.zero;



Public void Going(GameObject obj){
Pos = Obj.transform.position;
}
Void Update() {
 If(pos != Vector3.zero)
transform.position = Vector3.zero(transform.position, pos, 20 * Time.deltaTime);
}
 


не получилось пробовал!

Извини, я тупой :)
Public Vector3 pos = Vector3.zero;



Public void Going(GameObject obj){
Pos = Obj.transform.position;
}
Void Update() {
If(pos != Vector3.zero)
transform.position = new Vector3(transform.position, pos, 20 * Time.deltaTime);
}

Re: Помощь в написании скрипта перемещения

СообщениеДобавлено: 17 фев 2019, 13:37
morpex182
AngryCat писал(а):
morpex182 писал(а):
AngryCat писал(а):Если задачу понял правильно, то вот код. Вешай на шарик, а на каждый круг компонент button, и в нем добавь событие, укажи в нем шарик, вызовите метод Going, а в аргумент запихни сам круг.

Синтаксис:
Используется csharp
Public Vector3 pos = Vector3.zero;



Public void Going(GameObject obj){
Pos = Obj.transform.position;
}
Void Update() {
 If(pos != Vector3.zero)
transform.position = Vector3.zero(transform.position, pos, 20 * Time.deltaTime);
}
 


не получилось пробовал!

Извини, я тупой :)
Public Vector3 pos = Vector3.zero;



Public void Going(GameObject obj){
Pos = Obj.transform.position;
}
Void Update() {
If(pos != Vector3.zero)
transform.position = new Vector3(transform.position, pos, 20 * Time.deltaTime);
}

все перепробовал не получается

Re: Помощь в написании скрипта перемещения

СообщениеДобавлено: 17 фев 2019, 17:05
Friend123
Да йомана, с 12 февраля уже можно было обсмотреться и ютуб, и обчитаться на форумах... Люди, ну что ж вы такие!

Re: Помощь в написании скрипта перемещения

СообщениеДобавлено: 17 фев 2019, 21:00
DimaJoke
Ну тип при нажатии ЛКМ пускаешь луч в позицию курсора. Смотрим, тот ли это объект, можно сделать с помощью тэгов. Проверяем позицию зелёной фигни, если она именно на нужном для нас шаре(центральном)(проверяем по transform.position и позиции того шара) то идём к нужному нам шару. Если он не на центральном шаре то идём на центральный шар, перед этим сохранить нужную позицию не забудь! Теперь снова проверка, на центральном ли он шаре, если так.. то вперёд и с песней на нужный нам шар!

Re: Помощь в написании скрипта перемещения

СообщениеДобавлено: 18 фев 2019, 00:26
Friend123
DimaJoke писал(а):Ну тип при нажатии ЛКМ пускаешь луч в позицию курсора. Смотрим, тот ли это объект, можно сделать с помощью тэгов. Проверяем позицию зелёной фигни, если она именно на нужном для нас шаре(центральном)(проверяем по transform.position и позиции того шара) то идём к нужному нам шару. Если он не на центральном шаре то идём на центральный шар, перед этим сохранить нужную позицию не забудь! Теперь снова проверка, на центральном ли он шаре, если так.. то вперёд и с песней на нужный нам шар!

Я всё описал до этого в более пресных красках. Если человек не хочет понимать, ему тут не место, как бы грубо это не звучало, мы не запад - тут жопы не лижут