using UnityEngine;

namespace NaughtyAttributes.Test
{
    public class LayerTest : MonoBehaviour
    {
        [Layer]
        public int layerNumber0;

        [Layer]
        public string layerName0;

        public LayerNest1 nest1;

        [Button]
        public void DebugLog()
        {
            Debug.LogFormat("{0} = {1}", nameof(layerNumber0), layerNumber0);
            Debug.LogFormat("{0} = {1}", nameof(layerName0), layerName0);
            Debug.LogFormat("LayerToName({0}) = {1}", layerNumber0, LayerMask.LayerToName(layerNumber0));
            Debug.LogFormat("NameToLayer({0}) = {1}", layerName0, LayerMask.NameToLayer(layerName0));
        }
    }

    [System.Serializable]
    public class LayerNest1
    {
        [Layer]
        public int layerNumber1;

        [Layer]
        public string layerName1;

        public LayerNest2 nest2;
    }

    [System.Serializable]
    public struct LayerNest2
    {
        [Layer]
        public int layerNumber2;

        [Layer]
        public string layerName2;
    }
}