как поменять направление движения обьекта при столкновении с чем-либо Unity 2D
я смог прописать движение мячика
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Vector : MonoBehaviour{
public Vector2 direction;
public float speed;
void Start()
{
}
void OnTriggerEnter2D(Collider other)
{
}
void FixedUpdate() {
transform.Translate(direction.normalized * speed);
}
}
хотел сделать так, чтобы при контакте со стенами он изменял направление по x или y, но не получилось. По идее нужно сделать так:
void OnTriggerEnter2D(Collider other)
{
if (other.tag == "Frontier")
{
direction = direction.normalized * speed * -1;
}
но в теле if должно быть что-то другое, изменяющее движение только по y, да и то,что есть не работает
Ответы (1 шт):
Автор решения: JustTesting
→ Ссылка
Сначала надо взять ссылку на объект, и тогда всё должно заработать. (Правда не совсем понимаю, как здесь используется Vector2 direction.)
public float speed;
private void OnCollisionEnter2D(Collision2D other)
{
// colliderWith - здесь, ссылка на игровой тот объект, который столкнулся
// с объектом, к которому подключен скрипт
// (colliderWith - стена
// other - шар, направление которого надо изменить)
GameObject colliderWith = other.gameObject;
if (colliderWith.tag == "Frontier") {
speed *= -1;
}
}