안녕하세요. 

구글링도 해보고 챗지피티한테도 물어봤는데 해결이 잘 안되네요. 
버츄얼 조이스틱을 안드로이드에서만 작동하게 하려고 코드의 일부를 #if UNITY_ANDROID로 묶었는데
에디터 플레이 모드에서 자꾸 실행이 되네요. 어떻게 해결해야 할까요?

#if UNITY_ANDROID
        Debug.Log("ANDROID");
        InputVec = new Vector2(joy.Horizontal, joy.Vertical).normalized;
#endif

혹시 몰라서 아래에 해당 클래스의 전체 코드를 올렸습니다. 
안드로이드 전처리기는 ApplyMovement 함수 안에 있습니다. 

using UnityEngine;
using UnityEngine.InputSystem;
public class Player : MonoBehaviour
{
    public Vector2 InputVec { get; private set; }
    Rigidbody2D rb;
    [SerializeField] SpriteRenderer sr;
    Animator anim;
    Character character;
    public float FacingDir { get; private set; } = 1f;
    [Header("Joystic")]
    public FloatingJoystick joy;
    void Awake()
    {
        rb = GetComponent();
        anim = GetComponent();
        character = GetComponent();
    }
    void LateUpdate()
    {
        Flip();
        UpdateAniamtionState();
    }
    void FixedUpdate()
    {
        ApplyMovement();
    }
    public void ment(InputAction.CallbackContext context)
    {
        InputVec = context.ReadValue();
    }
    void ApplyMovement()
    {
#if UNITY_ANDROID
        Debug.Log("ANDROID");
        InputVec = new Vector2(joy.Horizontal, joy.Vertical).normalized;
#endif
        Vector2 nextVec = InputVec * character.MoveSpeed * Time.fixedDeltaTime;
        rb.MovePosition(rb.position + nextVec);
    }
    void Flip()
    {
        if (InputVec.x != 0 && InputVec.x * FacingDir < 0f)
        {
            FacingDir *= -1f;
        }
        sr.flipX = FacingDir < 0;
    }
    void UpdateAniamtionState()
    {
        anim.SetFloat("Speed", InputVec.magnitude);
    }
    public bool IsPlayerMoving()
    {
        if (InputVec == Vector2.zero)
            return false;
        return true;
    }
}

- dc official App