コード例 #1
0
        private void DrawFurnitureColliderInfo()
        {
            ShowUtil.DrawTitle("代表本体的碰撞信息", Color.magenta);
            ShowUtil.DrawLine();
            GUILayout.BeginHorizontal();
            GUILayout.FlexibleSpace();
            if (GUILayout.Button("重置", GUILayout.Width(120f)))
            {
                SetFurnitureCollider();
            }
            GUILayout.EndHorizontal();
            if (furnitureInfo.furnitureCollider == null)
            {
                EditorUtils.DrawNoCollider();
                return;
            }
            FurnitureCollider furnitureCollider = furnitureInfo.furnitureCollider;

            EditorGUI.indentLevel += 2;
            EditorGUILayout.ObjectField("碰撞体",
                                        furnitureCollider,
                                        typeof(FurnitureCollider), true);
            furnitureCollider.gameObject.layer = EditorGUILayout.LayerField("碰撞体层级", furnitureCollider.gameObject.layer, GUILayout.ExpandWidth(true));
            EditorGUILayout.ObjectField("信息体", furnitureCollider.info, typeof(ObjInfo), true);
            EditorGUI.indentLevel -= 2;
        }
コード例 #2
0
        private void SetFurnitureCollider()
        {
            FurnitureCollider furnitureCollider = furnitureInfo.furnitureCollider;

            if (furnitureCollider == null)
            {
                Transform colliderTrans = furniture.transform.Find("collider");
                if (null == colliderTrans)
                {
                    GameObject go = new GameObject("collider");
                    colliderTrans = go.transform;
                    colliderTrans.SetParentIndentical(furniture.transform);
                }
                furnitureCollider = colliderTrans.GetComponent <FurnitureCollider>();
                if (furnitureCollider == null)
                {
                    furnitureCollider = colliderTrans.gameObject.AddComponent <FurnitureCollider>();
                }
                furnitureInfo.furnitureCollider = furnitureCollider;
            }
            furnitureCollider.collider = furnitureCollider.gameObject.GetComponent <BoxCollider>();
            if (furnitureCollider.collider == null)
            {
                furnitureCollider.collider = furnitureCollider.gameObject.AddComponent <BoxCollider>();
            }

            if (furnitureInfo.furnitureType == FurnitureType.furniture)
            {
                furnitureCollider.gameObject.layer = Const.LAYER_FURNITURE_COLLIDER;
            }
            else
            {
                furnitureCollider.gameObject.layer = Const.LAYER_BUILDING_COLLIDER;
            }

            furnitureCollider.info = furnitureInfo;
        }