static int _m_SetObjectShapeCollider_xlua_st_(RealStatePtr L)
        {
            ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L);



            try {
                {
                    UnityEngine.GameObject targetObject = (UnityEngine.GameObject)translator.GetObject(L, 1, typeof(UnityEngine.GameObject));
                    Neptune.ShapeInfo      shapeInfo    = (Neptune.ShapeInfo)translator.GetObject(L, 2, typeof(Neptune.ShapeInfo));

                    xc.Dungeon.LevelObjectHelper.SetObjectShapeCollider(targetObject, shapeInfo);



                    return(0);
                }
            } catch (System.Exception __gen_e) {
                return(LuaAPI.luaL_error(L, "c# exception:" + __gen_e));
            }
        }
Esempio n. 2
0
        /// <summary>
        /// 设置shape信息的Collider
        /// </summary>
        /// <param name="targetObject"></param>
        /// <param name="shapeInfo"></param>
        static public void SetObjectShapeCollider(GameObject targetObject, Neptune.ShapeInfo shapeInfo)
        {
            if (targetObject == null || shapeInfo == null)
            {
                Debug.LogError("[LevelObjectHelper SetObjectShapeCollider Error]: targetObject or shapeInfo is null");
                return;
            }

            switch (shapeInfo.Type)
            {
            case Neptune.ShapeType.SPHERE:
                // 需要触发的时候才添加Collider组件
                if (shapeInfo.IsTrigger)
                {
                    var sphereCollider = targetObject.AddComponent <SphereCollider>();
                    sphereCollider.radius    = shapeInfo.SphereRadius;
                    sphereCollider.isTrigger = true;
                }

                break;

            case Neptune.ShapeType.BOX:
                if (shapeInfo.IsTrigger)
                {
                    var boxCollider = targetObject.AddComponent <BoxCollider>();
                    boxCollider.size      = shapeInfo.BoxSize;
                    boxCollider.isTrigger = true;
                }

                break;

            default:
                Debug.LogError("[LevelObjectHelper SetObjectShapeCollider Error]: shapeType error");
                break;
            }
        }