У меня есть игра. Там большая линия, на которой расположено в ряд 3 фигуры. Суть в том, что по это линии "катается" прямоугольник (а именно сектор), он катается по ней слева-направо и обратно, и игроку нужно нажать на кнопку, что он остановился. Если сектор останавливается на 2й фигуре, к примеру, то он побеждает, если на других - но иное действие. Я сделал стены для этого сектора (2 пустышки с box coliders 2d), чтобы за границы не улетал, и на каждую фигуру тоже box colider 2d. У самого этого прямоугольника(сектора) Rigidbody 2D на kinematic. Я или сильно туплю, но у меня проблемы с тем, чтобы выводилось "Rectangle stopped at FirstPart" при остановке на соответствующем колайдере. Как и в условии else. Помогите пожалуйста, голову ломаю.
using UnityEngine;
public class RectangleMovement : MonoBehaviour
{
public float speed = 1.0f;
public LayerMask obstacleLayer;
private bool isMovingRight = true;
private bool isStopped = false;
void Update()
{
if (isMovingRight && !isStopped)
{
transform.Translate(Vector2.right * speed * Time.deltaTime);
}
else if (!isMovingRight && !isStopped)
{
transform.Translate(Vector2.left * speed * Time.deltaTime);
}
RaycastHit2D hit = Physics2D.Raycast(transform.position, isMovingRight ? Vector2.right : Vector2.left, 0.1f, obstacleLayer);
if (hit.collider != null)
{
isMovingRight = !isMovingRight;
if (isStopped)
{
if (hit.collider.tag == "FirstPart")
{
Debug.Log("Rectangle stopped at FirstPart.");
}
else
{
Debug.Log("Rectangle stopped.");
}
}
}
}
public void StopMovement() //кнопка
{
isStopped = true;
Debug.Log("Movement stopped.");
}
}