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; }
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; }