| using UnityEngine; | 
| using System.Collections; | 
| using System; | 
|   | 
|   | 
| public static class LayerUtility | 
| { | 
|     public static readonly int DefaultLayer = LayerMask.NameToLayer("Default"); | 
|     public static readonly int DefaultMask = 1 << DefaultLayer; | 
|   | 
|     public static readonly int GroundLayer = LayerMask.NameToLayer("Ground"); | 
|     public static readonly int GroundMask = 1 << GroundLayer; | 
|   | 
|     public static readonly int Wall = LayerMask.NameToLayer("Wall"); | 
|     public static readonly int WallMask = 1 << Wall; | 
|   | 
|     public static readonly int UILayer = LayerMask.NameToLayer("UI"); | 
|     public static readonly int UIMask = 1 << UILayer; | 
|   | 
|     public static readonly int DevisableUI = LayerMask.NameToLayer("DevisableUI"); | 
|     public static readonly int DevisableUIMask = 1 << DevisableUI; | 
|   | 
|     public static readonly int UIEffectLayer = LayerMask.NameToLayer("UIEffect"); | 
|     public static readonly int UIEffectMask = 1 << UILayer; | 
|   | 
|     public static readonly int HUDLayer = LayerMask.NameToLayer("HUD"); | 
|     public static readonly int HUDMask = 1 << HUDLayer; | 
|   | 
|     public static readonly int Player = LayerMask.NameToLayer("Player"); | 
|     public static readonly int PlayerMask = 1 << Player; | 
|   | 
|     public static readonly int Monster = LayerMask.NameToLayer("Monster"); | 
|     public static readonly int MonsterMask = 1 << Monster; | 
|   | 
|     public static readonly int TransparentFX = LayerMask.NameToLayer("TransparentFX"); | 
|     public static readonly int TransparentFXMask = 1 << TransparentFX; | 
|   | 
|     public static readonly int Hero = LayerMask.NameToLayer("Hero"); | 
|     public static readonly int HeroMask = 1 << Hero; | 
|   | 
|     public static readonly int MapTrigger = LayerMask.NameToLayer("MapTrigger"); | 
|     public static readonly int MapTriggerMask = 1 << MapTrigger; | 
|   | 
|     public static readonly int Walkble = LayerMask.NameToLayer("WalkbleLayer"); | 
|     public static readonly int WalkbleMask = 1 << Walkble; | 
|   | 
|     public static readonly int BossShow = LayerMask.NameToLayer("BossShow"); | 
|     public static readonly int BossShowMask = 1 << BossShow; | 
|   | 
|     public static readonly int BattleEffectLow = LayerMask.NameToLayer("BattleEffectLow"); | 
|     public static readonly int BattleEffectLowMask = 1 << BattleEffectLow; | 
|     public static readonly int BattleEffectMid = LayerMask.NameToLayer("BattleEffectMid"); | 
|     public static readonly int BattleEffectMidMask = 1 << BattleEffectMid; | 
|     public static readonly int BattleEffectHigh = LayerMask.NameToLayer("BattleEffectHigh"); | 
|     public static readonly int BattleEffectHighMask = 1 << BattleEffectHigh; | 
|   | 
|     public static readonly int Hide = LayerMask.NameToLayer("Hide"); | 
|     public static readonly int HideMask = 1 << Hide; | 
|   | 
|     public static readonly int MaskShow = LayerMask.NameToLayer("MaskShow"); | 
|     public static readonly int MaskShowMask = 1 << MaskShow; | 
|   | 
|   | 
|     public static void SetLayer(this GameObject _gameObject, int _layer, bool _recursive) | 
|     { | 
|         if (_gameObject == null) | 
|         { | 
|             return; | 
|         } | 
|   | 
|         _gameObject.layer = _layer; | 
|   | 
|         if (_recursive && _gameObject.transform.childCount > 0) | 
|         { | 
|             var childCount = _gameObject.transform.childCount; | 
|             for (var i = 0; i < childCount; i++) | 
|             { | 
|                 var child = _gameObject.transform.GetChild(i); | 
|                 SetLayer(child.gameObject, _layer, true); | 
|             } | 
|         } | 
|   | 
|     } | 
|   | 
| } |