Member 14135033 Ответов: 1

У меня есть простой скрипт point and click для перемещения игрока. Как я могу что-то сделать, когда игрок прибывает в указанное место назначения?


У меня есть простой скрипт point and click для перемещения игрока.

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

Как я могу сказать, когда объект прибывает в положение щелчка, а затем //сделать что-то еще// т. е. воспроизвести анимацию стенда?

Что я уже пробовал:

public float speed = 1.5f;
private Vector2 target;
 
void Start () {
    SkelAnim = GetComponent<SkeletonAnimation>();
    target = transform.position;
     }
     
void Update () {
    if (Input.GetMouseButtonDown(0)) {

    SkelAnim.state.SetAnimation(0,walk,true);
    target = Camera.main.ScreenToWorldPoint(Input.mousePosition);
    
         }
    transform.position = Vector2.MoveTowards(transform.position, target, speed * Time.deltaTime);
    

    }
   }    

OriginalGriff

Это не очень хороший вопрос - мы не можем понять из этого малого, что вы пытаетесь сделать.
Помните, что мы не можем видеть ваш экран, получить доступ к вашему жесткому диску или прочитать ваши мысли - мы получаем только то, что вы печатаете для работы.
Используйте виджет "улучшить вопрос", чтобы отредактировать свой вопрос и предоставить более подробную информацию.

Member 14135033

Спасибо за ответ Гриффу, поэтому при щелчке мыши у меня есть персонаж, идущий к точке положения, я пытаюсь понять, как я собираюсь сказать, когда он прибудет в точку щелчка, сделайте что-нибудь еще

OriginalGriff

Итак, откуда вы знаете, где находится эта точка? Как далеко находится "в точке"?
Что вы уже пробовали до сих пор?

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

Member 14135033

Наверное, поэтому я в замешательстве, я не знаю, как лучше всего это сделать. Я обнаруживаю, что точка щелчка (ScreenToWorldPoint) Input.mousePosition.

Это единственный код, который я пробовал, который работал для меня, чтобы заставить его идти к точке щелчка.

1 Ответов

Рейтинг:
4

OriginalGriff

Цитата:
Наверное, поэтому я в замешательстве, я не знаю, как лучше всего это сделать. Я обнаруживаю, что точка щелчка (ScreenToWorldPoint) Input.mousePosition.

Это единственный код, который я пробовал, который работал для меня, чтобы заставить его идти к точке щелчка.


Нет, не "как вы кодируете, знаете, где эта точка" - если бы вы могли ответить на этот вопрос, вам не пришлось бы задавать этот вопрос! :смеяться:
- Откуда ты знаешь? Если я скажу вам: "идите на 14, патока Майн роуд", и вы отправитесь пешком, как вы узнаете, что добрались туда?

Ну, в основном вы сравниваете свое текущее положение с требуемым пунктом назначения, и когда разница равна нулю (или очень мала), вы "прибыли". Переведите это в сетку, и вы окажетесь в ячейке (4, 2), а 14 Treacle Mine Road-в ячейке (16, 7). Ты там? Нет, потому что 4 - это не то же самое, что 16, а 2-это не то же самое, что 7. Таким образом, вы идете в "одобренном направлении" (вверх, вниз, влево-вправо, возможно, по диагонали), изменяя свой текущий адрес ячейки, пока не прибудете. Если 16 - 4 больше, чем 7 - 2, добавьте один к вашему X, чтобы перейти к (5, 2), в противном случае добавьте один к вашему Y и переместитесь в ячейку (4, 3). Проверить еще раз. Двигайся, если тебя там нет.

Есть ли в этом хоть какой-то смысл?


Member 14135033

Спасибо, это имеет больше смысла, мне нужно, чтобы он щелкнул координатами положения, а затем проверил, являются ли эти координаты = to, чтобы знать, что он прибыл на дорогу паточной шахты :)

OriginalGriff

Всегда пожалуйста!