Движение свайпом не выходит передвинуть объект Unity C#

Программирование на Юнити.

Движение свайпом не выходит передвинуть объект Unity C#

Сообщение ig866 12 дек 2019, 19:50

Дело в том что , если наложить скрипт на объект в моём случае
public GameObject quad
он меняет цвета при свайпе мышки , но отказывается передвигаться в стороны .Несколько раз как то криво заработало.Уже море времени потратил .
Помогите разобраться .

[Unity3dPlayer]
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.EventSystems;

public class ControllScript : MonoBehaviour, IBeginDragHandler, IDragHandler
{
public GameObject quad;
SpriteRenderer spriteQuad;

public void OnBeginDrag(PointerEventData eventData)

{
if ((Mathf.Abs(eventData.delta.x)) > (Mathf.Abs(eventData.delta.y)))
{
if (eventData.delta.x > 0)
// transform.position = new Vector2(quad.transform.position.x + 0.5f,transform.position.y);
spriteQuad.color = Color.blue;

if (eventData.delta.x < 0)
spriteQuad.color = Color.gray;
//transform.position = new Vector2(quad.transform.position.x - 0.5f, transform.position.y);
}
else
{
if (eventData.delta.y > 0)
spriteQuad.color = Color.yellow;
// transform.position = new Vector2(quad.transform.position.y + 0.5f, transform.position.x);
if (eventData.delta.y < 0)
spriteQuad.color = Color.green;
// transform.position = new Vector2(quad.transform.position.y - 0.5f, transform.position.x);

}
}


public void OnDrag(PointerEventData eventData)
{
}

void Start()
{
spriteQuad = quad.GetComponent<SpriteRenderer>();
}

// Update is called once per frame
void Update()
{

}
}
(c#)

[/Unity3dPlayer]
Последний раз редактировалось ig866 13 дек 2019, 03:04, всего редактировалось 1 раз.
ig866
UNец
 
Сообщения: 9
Зарегистрирован: 12 дек 2019, 19:40

Re: Движение свайпом не выходит передвинуть объект Unity C#

Сообщение 1max1 12 дек 2019, 20:08

OnBeginDrag вот это сработает только 1 раз при касании, если что.
Аватара пользователя
1max1
Адепт
 
Сообщения: 5505
Зарегистрирован: 28 июн 2017, 10:51

Re: Движение свайпом не выходит передвинуть объект Unity C#

Сообщение ig866 13 дек 2019, 23:20

Готовый скрипт как и обещал :)


[Unity3dPlayer]using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.EventSystems;



public class ControllScript : MonoBehaviour, IBeginDragHandler, IDragHandler


{
public void Start()
{
quad.transform.position = new Vector2(-8.75f, -3.25f);
spriteQuad = quad.GetComponent<SpriteRenderer>();
}

public GameObject quad;
SpriteRenderer spriteQuad;
public float dirX, dirY;



public void OnBeginDrag(PointerEventData eventData)


{

if ((Mathf.Abs(eventData.delta.x)) > (Mathf.Abs(eventData.delta.y)))
{
if (eventData.delta.x > 0)
{
spriteQuad.color = Color.blue;
dirX = + 0.5f;
dirY = 0;
}

else
{
spriteQuad.color = Color.red;
// return quad.transform.position;
dirX = - 0.5f;
dirY = 0;
}


}
else if ((Mathf.Abs(eventData.delta.x)) < (Mathf.Abs(eventData.delta.y)))
{
if (eventData.delta.y > 0)
{
spriteQuad.color = Color.yellow;
dirY = + 0.5f;
dirX = 0;
}
else
{
spriteQuad.color = Color.green;
dirY = - 0.5f;
dirX = 0;
}
}
}



public void Update()

{
quad.transform.position = Vector2.Lerp(quad.transform.position ,new Vector2 (quad.transform.position.x + dirX, quad.transform.position.y + dirY), Time.deltaTime);
}

public void OnDrag(PointerEventData eventData)
{
}


}[/Unity3dPlayer]
ig866
UNец
 
Сообщения: 9
Зарегистрирован: 12 дек 2019, 19:40


Вернуться в Скрипты

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

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 7