1 Перемещение объекта из точки A в точку B Используйте MoveTowards2D : https://docs.unity3d.com/ScriptReference/Vector2.MoveTowards.html
2 Для обнаружения столкновений используйте OnTriggerEnter2D или OnCollisionEnter2D : https://docs.unity3d.com/ScriptReference/MonoBehaviour.OnTriggerEnter2D.html
Таким образом, в этом случае вы получаете:
один gameObject, который удаляется от A
- один игровой объект, который выступает в качестве стены
- один игровой объект, который является вашей точкой B.
Необходимо прикрепитьэтот скрипт для gameObject, который хочет переместиться из точки A в точку B:
public class MoveTo : MonoBehaviour
{
public Transform pointToGo;
public float speed;
public bool colliding = false;
private void Update()
{
if (!colliding)
{
//Move
float step = speed * Time.deltaTime;
transform.position = Vector2.MoveTowards(transform.position, pointToGo.position, step);
}
}
//Callback when enter the trigger
private void OnTriggerEnter2D(Collider2D collision)
{
colliding = true;
}
}
Примечание: Помните, что как gameObject со сценарием, так и стена,должен иметь коллайдер и твердое тело.Также, если вы хотите использовать триггер, не забудьте отметить «Is Trigger» на вашем настенном коллайдере.