- Home /
Hello I am working on a overview 2d melee combat system and trying to add onto my player grid movement script.
How do I make so that 2 or more layerMask can be used to stop the player movement. For Example I want to add a enemyLayer to react like my current collidersLayer.
public float moveSpeed = 2.5f;
public Transform movePoint;
public bool inEnemyArea = false;
public LayerMask colliderLayer;
// Start is called before the first frame update
void Start()
{
movePoint.parent = null;
}
// Update is called once per frame
void Update()
{
transform.position = Vector3.MoveTowards(transform.position, movePoint.position, moveSpeed * Time.deltaTime);
//Checks if movePoint and player are together to make the movement
if (Vector3.Distance(transform.position, movePoint.position) <= .05f && !inEnemyArea)
{
// Left and Right Movement
if (Mathf.Abs(Input.GetAxisRaw("Horizontal")) == 1f)
{
// Checks for colliders
if (!Physics2D.OverlapCircle(movePoint.position + new Vector3(Input.GetAxisRaw("Horizontal"), 0f, 0f), 0.2f, colliderLayer))
{
movePoint.position += new Vector3(Input.GetAxisRaw("Horizontal"), 0f, 0f);
}
}
// Up and Down Movement
else if (Mathf.Abs(Input.GetAxisRaw("Vertical")) == 1f)
{
// Checks for colliders
if (!Physics2D.OverlapCircle(movePoint.position + new Vector3(0f, Input.GetAxisRaw("Vertical"), 0f), 0.2f, colliderLayer))
{
movePoint.position += new Vector3(0f, Input.GetAxisRaw("Vertical"), 0f);
}
}
}
}
Comment