示例#1
0
    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;
            }
        }
    }