При перетаскивании объекта с помощью жесткого тела2D он проходит через коллайдеры (стены)C#

Место общения программистов C#
Ответить
Anonymous
 При перетаскивании объекта с помощью жесткого тела2D он проходит через коллайдеры (стены)

Сообщение Anonymous »

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

есть какие-нибудь советы, как решить эту проблему?

Вот код для перетаскивания, который я использую:

Код: Выделить всё

using UnityEngine;
using System.Collections;

public class CircleManager : MonoBehaviour {

private bool dragging = false;

private Vector3 screenPoint;
private Vector3 offset;

// Pressionando
void OnMouseDown()
{
dragging = true;
screenPoint = Camera.main.WorldToScreenPoint(gameObject.transform.position);
offset = gameObject.transform.position - Camera.main.ScreenToWorldPoint(new Vector3(Input.mousePosition.x, Input.mousePosition.y, screenPoint.z));
}

// Arrastando
void OnMouseDrag()
{
Vector3 cursorPoint = new Vector3(Input.mousePosition.x, Input.mousePosition.y, screenPoint.z);
Vector3 cursorPosition = Camera.main.ScreenToWorldPoint(cursorPoint) + offset;

//i tried with both below.
//transform.position = cursorPosition;
transform.GetComponent().MovePosition(cursorPosition);
}

// Soltando
void OnMouseUp()
{
dragging = false;
}

}
Спасибо!

Подробнее здесь: https://stackoverflow.com/questions/322 ... ders-walls
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»