C
C#2w ago
MrCows

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
MrCows
MrCowsOP2w ago
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;

}

Did you find this page helpful?