Exemplo n.º 1
0
        protected void InitLayer()
        {
            switch (ActorType)
            {
            case ActorType.Player:
                GlobalTools.SetLayer(EntityGo, Constant.Layer.PlayerId);
                break;

            case ActorType.Monster:
                GlobalTools.SetLayer(EntityGo, Constant.Layer.MonsterId);
                break;

            case ActorType.Npc:
                GlobalTools.SetLayer(EntityGo, Constant.Layer.NpcId);
                break;

            case ActorType.Pet:
                GlobalTools.SetLayer(EntityGo, Constant.Layer.PetId);
                break;

            case ActorType.Mount:
                GlobalTools.SetLayer(EntityGo, Constant.Layer.MountId);
                break;

            case ActorType.Partner:
                GlobalTools.SetLayer(EntityGo, Constant.Layer.PartnerId);
                break;
            }
        }
Exemplo n.º 2
0
        public override void Build()
        {
            if (Width < m_DefaultWidth)
            {
                Width = m_DefaultWidth;
            }
            int count = Mathf.CeilToInt(Width / m_DefaultWidth);

            m_Size.x = count * m_DefaultWidth;
            m_Size.y = 4;
            m_Size.z = 1.5f;

            m_Body = transform.Find("Body");
            if (m_Body == null)
            {
                m_Body        = new GameObject("Body").transform;
                m_Body.parent = transform;
                m_Body.transform.localPosition = Vector3.zero;
                m_Body.localEulerAngles        = Vector3.zero;
            }
            else
            {
                m_Body.DestroyChildren();
            }
            float halfCount = count * 0.5f;

            for (int i = 0; i < count; i++)
            {
                if (Application.isPlaying)
                {
                    TransformParam param = new TransformParam();
                    param.Position    = transform.position;
                    param.EulerAngles = transform.rotation.eulerAngles;
                    param.Scale       = transform.localScale;

                    m_SerialId = GameEntry.Level.CreateLevelObject(Constant.Define.Barrier, param);
                }
                else
                {
#if UNITY_EDITOR
                    GameObject barrier = LevelComponent.CreateLevelEditorObject(MapHolderType.Barrier);
                    barrier.transform.parent = transform;
                    Vector3 localPosition = Vector3.right * (i - halfCount + 0.5f) * m_DefaultWidth;
                    localPosition.z = m_Size.z * 0.5f;
                    barrier.transform.localPosition    = localPosition;
                    barrier.transform.localEulerAngles = Vector3.zero;
                    barrier.transform.localScale       = Vector3.one;
#endif
                }
            }

            m_Collider        = gameObject.GetOrAddComponent <BoxCollider>();
            m_Collider.size   = m_Size;
            m_Collider.center = new Vector3(0, m_Size.y * 0.5f, m_Size.z * 0.5f);
            GlobalTools.SetLayer(gameObject, Constant.Layer.BarrerId);
        }