реализация touch для player с TouchPhase Moved

Общие вопросы о Unity3D

реализация touch для player с TouchPhase Moved

Сообщение moti 02 фев 2020, 23:38

всем привет

подскажите пожалуйста как реализовать данный код чтобы при тапе на дисплее player мувился также как с TouchPhase Moved

Синтаксис:
Используется csharp
using System.Collections;
using System.Collections.Generic;
using UnityEngine;



public class MoveByTouch : MonoBehaviour {

    private Rigidbody2D Player;
   
    public float speed;

    public float direction;

    public Transform rightLimit;
    public Transform leftLimit;

   


    private void Start()
    {
        shipPlayer = GetComponent<Rigidbody2D>();
    }




    private void Update()
    {


        if (Input.touchCount > 0)
        {

            Touch touch = Input.GetTouch(0);          
            Vector3 touchPosition = Camera.main.ScreenToWorldPoint(touch.position);
                     
            touchPosition.z = 0f;
            transform.position = touchPosition;


            if (touch.phase == TouchPhase.Moved)
            {                              
                transform.position = new Vector3(Player.transform.position.x - (speed * Time.deltaTime), Player.transform.position.y, Player.transform.position.z);                
                direction = -1;
            }



            else
            {
                direction = 0;
            }



            if (transform.position.x > rightLimit.position.x)
            {
                transform.position = new Vector3(rightLimit.position.x, transform.position.y, transform.position.z);
            }

            else if (transform.position.x < leftLimit.position.x)
            {          
                transform.position = new Vector3(leftLimit.position.x, transform.position.y, transform.position.z);
           }



        }


    }



}
 




спасибо заранее кто поможет дополнить данную реализацию
your new motion vision
Аватара пользователя
moti
UNIт
 
Сообщения: 76
Зарегистрирован: 05 авг 2019, 14:10

Re: реализация touch для player с TouchPhase Moved

Сообщение 1max1 03 фев 2020, 00:20

transform.position = touchPosition;

У тебя же каждый фрейм позиция будет под пальцем ставиться, независимо муваешь ты или нет.
Аватара пользователя
1max1
Адепт
 
Сообщения: 5505
Зарегистрирован: 28 июн 2017, 10:51

Re: реализация touch для player с TouchPhase Moved

Сообщение moti 03 фев 2020, 12:16

Спасибо что написал, да имено так

Уже второй день мучаюсь , как сделать чтобы при тапе на экране player в данном случаи мувился, а непросто исчезал и появлялся там где тапаю :(

Буду очень признателен если ктонибудь вылажит простой пример данной реализации, или дополнит этот
your new motion vision
Аватара пользователя
moti
UNIт
 
Сообщения: 76
Зарегистрирован: 05 авг 2019, 14:10

Re: реализация touch для player с TouchPhase Moved

Сообщение 1max1 03 фев 2020, 12:58

Синтаксис:
Используется csharp
class XXX : MonoBehaviour
{
    Vector3 tapPosition;

    void Update()
    {
        if (Input.touchCount > 0)
        {
            Touch touch = Input.GetTouch(0);

            if (touch.phase == TouchPhase.Began)
                tapPosition = (Vector2)Camera.main.ScreenToWorldPoint(touch.position);
        }

        transform.position = Vector3.Lerp(transform.position, tapPosition, 5.0f * Time.deltaTime);
    }
}
Аватара пользователя
1max1
Адепт
 
Сообщения: 5505
Зарегистрирован: 28 июн 2017, 10:51

Re: реализация touch для player с TouchPhase Moved

Сообщение moti 03 фев 2020, 15:27

спасибо за совет
сейчас попробую разобраться с данной реализацией

может нетам прописал, тапаю немувится
но всёравно спасибо огромнейшее
your new motion vision
Аватара пользователя
moti
UNIт
 
Сообщения: 76
Зарегистрирован: 05 авг 2019, 14:10

Re: реализация touch для player с TouchPhase Moved

Сообщение moti 03 фев 2020, 17:23

как будет у тебя время немог бы ты привести пример реализации мувинга плеера при данных тачах в данных направлениях

Изображение

чтобы уже точно разобраться в данных реализациях
я думаю нетолько мне будет интересно

спасибо заранее
your new motion vision
Аватара пользователя
moti
UNIт
 
Сообщения: 76
Зарегистрирован: 05 авг 2019, 14:10

Re: реализация touch для player с TouchPhase Moved

Сообщение moti 04 фев 2020, 00:41

А можно проще сделать ?
Просто отключить в данной реализации как то phase touch began, чтобы player не исчезал и не появлялся, вообще на данный touch нереагировал а только мувился ?
Я уже tutorials с yt усмотрелся :)
your new motion vision
Аватара пользователя
moti
UNIт
 
Сообщения: 76
Зарегистрирован: 05 авг 2019, 14:10

Re: реализация touch для player с TouchPhase Moved

Сообщение 1max1 04 фев 2020, 00:54

Я нихера не понимаю что ты хочешь, ты объясни подробно. Все что я понял, это то, что нужно чтобы игрок куда-то мувился, всё... :ymparty:
Аватара пользователя
1max1
Адепт
 
Сообщения: 5505
Зарегистрирован: 28 июн 2017, 10:51

Re: реализация touch для player с TouchPhase Moved

Сообщение Alex5 04 фев 2020, 01:21

1max1 писал(а):Я нихера не понимаю что ты хочешь, ты объясни подробно. Все что я понял, это то, что нужно чтобы игрок куда-то мувился, всё... :ymparty:

Что тут непонятного? ТС хочет чтобы при тапе в какую-нибудь точку, туда начинал плавно двигаться объект, а не телепортировался. :)
Linux это просто
Экономика это просто
Forex это просто
Мой канал на YouTube
Аватара пользователя
Alex5
Старожил
 
Сообщения: 507
Зарегистрирован: 22 авг 2019, 17:37

Re: реализация touch для player с TouchPhase Moved

Сообщение 1max1 04 фев 2020, 01:28

Alex5 писал(а):
1max1 писал(а):Я нихера не понимаю что ты хочешь, ты объясни подробно. Все что я понял, это то, что нужно чтобы игрок куда-то мувился, всё... :ymparty:

Что тут непонятного? ТС хочет чтобы при тапе в какую-нибудь точку, туда начинал плавно двигаться объект, а не телепортировался. :)

То и не понятно, потому что я ему уже дал такой код выше. Он хочет что-то еще, пока еще не понял что.
Аватара пользователя
1max1
Адепт
 
Сообщения: 5505
Зарегистрирован: 28 июн 2017, 10:51

Re: реализация touch для player с TouchPhase Moved

Сообщение Alex5 04 фев 2020, 02:05

1max1 писал(а):То и не понятно, потому что я ему уже дал такой код выше. Он хочет что-то еще, пока еще не понял что.

Умение ставить задачу - тоже искусство.
Можно ещё предположить, что задача ТС в том, чтобы объект не просто двигался в нужном направлении к месту тапа, но и не останавливался в точке тапа.
Плюс еще 100500 вариантов! :)
Linux это просто
Экономика это просто
Forex это просто
Мой канал на YouTube
Аватара пользователя
Alex5
Старожил
 
Сообщения: 507
Зарегистрирован: 22 авг 2019, 17:37

Re: реализация touch для player с TouchPhase Moved

Сообщение moti 04 фев 2020, 13:52

чуть подругому сделал
за данное решение спасибо
your new motion vision
Аватара пользователя
moti
UNIт
 
Сообщения: 76
Зарегистрирован: 05 авг 2019, 14:10

Re: реализация touch для player с TouchPhase Moved

Сообщение moti 15 фев 2020, 14:32

Остановился на такой реализации
но столкнулся с проблемой, что игрок проваливается


Изображение

Изображение

Подскажите пожалуйста как это исправить
your new motion vision
Аватара пользователя
moti
UNIт
 
Сообщения: 76
Зарегистрирован: 05 авг 2019, 14:10

Re: реализация touch для player с TouchPhase Moved

Сообщение 1max1 15 фев 2020, 15:09

Ну так а что ты хотел, управление через трансформ, делай через rb.velocity.
Аватара пользователя
1max1
Адепт
 
Сообщения: 5505
Зарегистрирован: 28 июн 2017, 10:51

Re: реализация touch для player с TouchPhase Moved

Сообщение moti 15 фев 2020, 20:02

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

удачи тебе в твоих проектах
your new motion vision
Аватара пользователя
moti
UNIт
 
Сообщения: 76
Зарегистрирован: 05 авг 2019, 14:10


Вернуться в Общие вопросы

Кто сейчас на конференции

Сейчас этот форум просматривают: Google [Bot] и гости: 12