Help with home work
The goal is to change the direction of the square from x to y then y to x. I seem to not understand the logic(I DO NOT WANT THE ANSWER JUST HELP TO IT)
using UnityEngine;
using UnityEngine.UIElements;
public class SquareMovingAround : MonoBehaviour
{
[SerializeField]
private Vector2 direction; // Direction du mouvement
private float speed = 1.5f; // Vitesse du mouvement
[SerializeField]
private float minX, maxX, minY, maxY; // Limites horizontales et verticales
// Update is called once per frame
void Update()
{
// On déplace le carré
transform.Translate(speed * Time.deltaTime * direction);
// Si la limite est atteinte, on change de direction
if (transform.localPosition.x >= maxX)
{
//direction.y = -direction.y;
transform.localPosition = new Vector2(transform.localPosition.x, maxY);
direction.y = -direction.y;
}
if (transform.localPosition.x <= minX)
{
transform.localPosition = new Vector2(minX, transform.localPosition.y);
speed = -speed;
}
/*if (transform.localPosition.y >= maxY || transform.localPosition.y <= minY)
{
float limitHorizontal = Mathf.Clamp(transform.localPosition.y, minX, maxX);
transform.localPosition = new Vector2(transform.localPosition.x, limitHorizontal);
}
*/
}
}
using UnityEngine;
using UnityEngine.UIElements;
public class SquareMovingAround : MonoBehaviour
{
[SerializeField]
private Vector2 direction; // Direction du mouvement
private float speed = 1.5f; // Vitesse du mouvement
[SerializeField]
private float minX, maxX, minY, maxY; // Limites horizontales et verticales
// Update is called once per frame
void Update()
{
// On déplace le carré
transform.Translate(speed * Time.deltaTime * direction);
// Si la limite est atteinte, on change de direction
if (transform.localPosition.x >= maxX)
{
//direction.y = -direction.y;
transform.localPosition = new Vector2(transform.localPosition.x, maxY);
direction.y = -direction.y;
}
if (transform.localPosition.x <= minX)
{
transform.localPosition = new Vector2(minX, transform.localPosition.y);
speed = -speed;
}
/*if (transform.localPosition.y >= maxY || transform.localPosition.y <= minY)
{
float limitHorizontal = Mathf.Clamp(transform.localPosition.y, minX, maxX);
transform.localPosition = new Vector2(transform.localPosition.x, limitHorizontal);
}
*/
}
}
1 Reply
only this section can be changed
// On déplace le carré
transform.Translate(speed * Time.deltaTime * direction);
// Si la limite est atteinte, on change de direction
if (transform.localPosition.x >= maxX)
{
//direction.y = -direction.y;
transform.localPosition = new Vector2(transform.localPosition.x, maxY);
direction.y = -direction.y;
}
if (transform.localPosition.x <= minX)
{
transform.localPosition = new Vector2(minX, transform.localPosition.y);
speed = -speed;
}
// On déplace le carré
transform.Translate(speed * Time.deltaTime * direction);
// Si la limite est atteinte, on change de direction
if (transform.localPosition.x >= maxX)
{
//direction.y = -direction.y;
transform.localPosition = new Vector2(transform.localPosition.x, maxY);
direction.y = -direction.y;
}
if (transform.localPosition.x <= minX)
{
transform.localPosition = new Vector2(minX, transform.localPosition.y);
speed = -speed;
}