private void Update() { Vector3 moveDir = input.moveVector.magnitude > 1 ? input.moveVector.normalized : input.moveVector; //Si il est dans la zone il peut bouger comme il veut if (gameArea.InZone(transform)) { transform.position += moveDir * speed * Time.deltaTime; } else //Il veut revenir dans la zone de jeu if (gameArea.CanMoveInDir(transform, moveDir)) { transform.position += moveDir * speed * Time.deltaTime; } }
void Update() { perlinSeedX += Vector2.one * Random.value * randomScale * Time.deltaTime; perlinSeedY += Vector2.one * Random.value * randomScale * Time.deltaTime; float moveX = Mathf.PerlinNoise(perlinSeedX.x, perlinSeedX.y); float moveY = Mathf.PerlinNoise(perlinSeedY.x, perlinSeedY.y); Vector3 moveDir = new Vector2((moveX - directionX) * 2, (moveY - directionY) * 2).normalized *speed; if (!isTrapped) { if (insectArea.InZone(transform)) { transform.position += moveDir * speed * Time.deltaTime; } else //Il peut revenir dans la zone de jeu if (insectArea.CanMoveInDir(transform, moveDir)) { transform.position += moveDir * speed * Time.deltaTime; } } }