Код движения я написал, но когда он сталкивается с героем он бежит в противоположную сторону, не подскажете как сделать так, чтобы он продолжал своё движение , отталкивая героя ?
Синтаксис:
Используется csharp
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Patrol : MonoBehaviour
{
[SerializeField]
private float speed = 5;
private bool moovingRight = true;
[SerializeField]
private Transform groundDetectionl;
void Update()
{
transform.Translate(Vector2.right * speed * Time.deltaTime);
Move();
}
void Move()
{
RaycastHit2D groundRightInfo = Physics2D.Raycast(groundDetectionl.position, Vector2.right, 0.5f);
RaycastHit2D groundLeftInfo = Physics2D.Raycast(groundDetectionl.position, Vector2.left, 0.5f);
// вариант когда пространство моба ограничено и он двигается в право и в лево
if (groundRightInfo.collider && groundLeftInfo.collider)
{
if (moovingRight == true)
{
transform.eulerAngles = new Vector3(0, -180, 0);
moovingRight = false;
}
else
{
transform.eulerAngles = new Vector3(0, 0, 0);
moovingRight = true;
}
}
}
}
using System.Collections.Generic;
using UnityEngine;
public class Patrol : MonoBehaviour
{
[SerializeField]
private float speed = 5;
private bool moovingRight = true;
[SerializeField]
private Transform groundDetectionl;
void Update()
{
transform.Translate(Vector2.right * speed * Time.deltaTime);
Move();
}
void Move()
{
RaycastHit2D groundRightInfo = Physics2D.Raycast(groundDetectionl.position, Vector2.right, 0.5f);
RaycastHit2D groundLeftInfo = Physics2D.Raycast(groundDetectionl.position, Vector2.left, 0.5f);
// вариант когда пространство моба ограничено и он двигается в право и в лево
if (groundRightInfo.collider && groundLeftInfo.collider)
{
if (moovingRight == true)
{
transform.eulerAngles = new Vector3(0, -180, 0);
moovingRight = false;
}
else
{
transform.eulerAngles = new Vector3(0, 0, 0);
moovingRight = true;
}
}
}
}