diff --git a/Packages/Floorplan-2.0/.gitattributes b/Packages/Floorplan-2.0/.gitattributes new file mode 100644 index 00000000..dfe07704 --- /dev/null +++ b/Packages/Floorplan-2.0/.gitattributes @@ -0,0 +1,2 @@ +# Auto detect text files and perform LF normalization +* text=auto diff --git a/Packages/Floorplan-2.0/DefaultTileset.meta b/Packages/Floorplan-2.0/DefaultTileset.meta new file mode 100644 index 00000000..824e03f1 --- /dev/null +++ b/Packages/Floorplan-2.0/DefaultTileset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 749ab9885ade742439b98417ba092f34 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/Floorplan-2.0/DefaultTileset/DefaultTileset.asset b/Packages/Floorplan-2.0/DefaultTileset/DefaultTileset.asset new file mode 100644 index 00000000..60dbe972 --- /dev/null +++ b/Packages/Floorplan-2.0/DefaultTileset/DefaultTileset.asset @@ -0,0 +1,33 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &11400000 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 8441b0125f23fb644b2d1fbd1835ee18, type: 3} + m_Name: DefaultTileset + m_EditorClassIdentifier: + floorTiles: + - {fileID: 254791854324832132, guid: 381ed00a800c7ae438567827f63d59ab, type: 3} + wallTiles: + - {fileID: 521578371659750298, guid: b15f933ae2fe0b545a5adfb036e3a417, type: 3} + - {fileID: 521578371659750298, guid: 6a1ffa776d6688a44a0f14835e3e53a5, type: 3} + - {fileID: 521578371659750298, guid: 48f9a004f13996242846f8a5989d3a98, type: 3} + - {fileID: 521578371659750298, guid: 842c193116fb587429cad010c2d09e8f, type: 3} + - {fileID: 521578371659750298, guid: f10f378709028f44dae833efc1cc7289, type: 3} + - {fileID: 521578371659750298, guid: 4f27ddea839e7eb498d34e23bd316a5f, type: 3} + - {fileID: 764512528839231858, guid: 934ba286f9a61cf4c8abe65a39b8202c, type: 3} + - {fileID: 2760337413371881268, guid: 7779d0ef6488ede469edbd327dca5fe4, type: 3} + - {fileID: 2760337413371881268, guid: 97aa43477860ad04fa4d579a5633e9a2, type: 3} + - {fileID: 2760337413371881268, guid: a4fd8598690fb414694e3b5f97fd42ac, type: 3} + - {fileID: 764512528839231858, guid: 6aa0301cf6fc3f34c8f9b20f9547c567, type: 3} + - {fileID: -927199367670048503, guid: cb3740ab608be7c4aa803b547e7fc259, type: 3} + - {fileID: 2760337413371881268, guid: 2d6fde89eebde394db4dac2e1e2bc81f, type: 3} + - {fileID: 2760337413371881268, guid: bdbaa7cf00eee39429b788a3c83408eb, type: 3} + pillarTiles: + - {fileID: 6653626983322759584, guid: b4e0bf2c4458c7d4781665e683e55262, type: 3} diff --git a/Packages/Floorplan-2.0/DefaultTileset/DefaultTileset.asset.meta b/Packages/Floorplan-2.0/DefaultTileset/DefaultTileset.asset.meta new file mode 100644 index 00000000..2b786037 --- /dev/null +++ b/Packages/Floorplan-2.0/DefaultTileset/DefaultTileset.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 04655de02232d0642ad32b971b2e2a91 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/Floorplan-2.0/DefaultTileset/Meshes.meta b/Packages/Floorplan-2.0/DefaultTileset/Meshes.meta new file mode 100644 index 00000000..435504d4 --- /dev/null +++ b/Packages/Floorplan-2.0/DefaultTileset/Meshes.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 8637391c73eb48c408b66ff24ac4dde2 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/Floorplan-2.0/DefaultTileset/Meshes/mech_arch.fbx b/Packages/Floorplan-2.0/DefaultTileset/Meshes/mech_arch.fbx new file mode 100644 index 00000000..cccd617a Binary files /dev/null and b/Packages/Floorplan-2.0/DefaultTileset/Meshes/mech_arch.fbx differ diff --git a/Packages/Floorplan-2.0/DefaultTileset/Meshes/mech_arch.fbx.meta b/Packages/Floorplan-2.0/DefaultTileset/Meshes/mech_arch.fbx.meta new file mode 100644 index 00000000..3a6f4446 --- /dev/null +++ b/Packages/Floorplan-2.0/DefaultTileset/Meshes/mech_arch.fbx.meta @@ -0,0 +1,95 @@ +fileFormatVersion: 2 +guid: 93bb1c36eb1cdbf4188f1f0bc70f96ce +ModelImporter: + serializedVersion: 28 + internalIDToNameTable: [] + externalObjects: {} + materials: + materialImportMode: 0 + materialName: 0 + materialSearch: 1 + materialLocation: 1 + animations: + legacyGenerateAnimations: 4 + bakeSimulation: 0 + resampleCurves: 1 + optimizeGameObjects: 0 + motionNodeName: + rigImportErrors: + rigImportWarnings: + animationImportErrors: + animationImportWarnings: + animationRetargetingWarnings: + animationDoRetargetingWarnings: 0 + importAnimatedCustomProperties: 0 + importConstraints: 0 + animationCompression: 1 + animationRotationError: 0.5 + animationPositionError: 0.5 + animationScaleError: 0.5 + animationWrapMode: 0 + extraExposedTransformPaths: [] + extraUserProperties: [] + clipAnimations: [] + isReadable: 1 + meshes: + lODScreenPercentages: [] + globalScale: 1 + meshCompression: 0 + addColliders: 0 + useSRGBMaterialColor: 1 + sortHierarchyByName: 1 + importVisibility: 1 + importBlendShapes: 1 + importCameras: 1 + importLights: 1 + swapUVChannels: 0 + generateSecondaryUV: 1 + useFileUnits: 1 + keepQuads: 0 + weldVertices: 1 + preserveHierarchy: 0 + skinWeightsMode: 0 + maxBonesPerVertex: 4 + minBoneWeight: 0.001 + meshOptimizationFlags: -1 + indexFormat: 0 + secondaryUVAngleDistortion: 8 + secondaryUVAreaDistortion: 15.000001 + secondaryUVHardAngle: 88 + secondaryUVPackMargin: 4 + useFileScale: 1 + tangentSpace: + normalSmoothAngle: 60 + normalImportMode: 0 + tangentImportMode: 3 + normalCalculationMode: 4 + legacyComputeAllNormalsFromSmoothingGroupsWhenMeshHasBlendShapes: 0 + blendShapeNormalImportMode: 1 + normalSmoothingSource: 0 + referencedClips: [] + importAnimation: 1 + humanDescription: + serializedVersion: 3 + human: [] + skeleton: [] + armTwist: 0.5 + foreArmTwist: 0.5 + upperLegTwist: 0.5 + legTwist: 0.5 + armStretch: 0.05 + legStretch: 0.05 + feetSpacing: 0 + globalScale: 1 + rootMotionBoneName: + hasTranslationDoF: 0 + hasExtraRoot: 0 + skeletonHasParents: 1 + lastHumanDescriptionAvatarSource: {instanceID: 0} + animationType: 0 + humanoidOversampling: 1 + avatarSetup: 0 + additionalBone: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/Floorplan-2.0/DefaultTileset/Meshes/mesh_arch_large_1.fbx b/Packages/Floorplan-2.0/DefaultTileset/Meshes/mesh_arch_large_1.fbx new file mode 100644 index 00000000..c064b1bd Binary files /dev/null and b/Packages/Floorplan-2.0/DefaultTileset/Meshes/mesh_arch_large_1.fbx differ diff --git a/Packages/Floorplan-2.0/DefaultTileset/Meshes/mesh_arch_large_1.fbx.meta b/Packages/Floorplan-2.0/DefaultTileset/Meshes/mesh_arch_large_1.fbx.meta new file mode 100644 index 00000000..3ccf39f1 --- /dev/null +++ b/Packages/Floorplan-2.0/DefaultTileset/Meshes/mesh_arch_large_1.fbx.meta @@ -0,0 +1,99 @@ +fileFormatVersion: 2 +guid: 826fbfbb0ca21c848bf195205513c6dd +ModelImporter: + serializedVersion: 19300 + internalIDToNameTable: + - first: + 74: 3889634814954103615 + second: Body|Idle + externalObjects: {} + materials: + materialImportMode: 1 + materialName: 0 + materialSearch: 1 + materialLocation: 1 + animations: + legacyGenerateAnimations: 4 + bakeSimulation: 0 + resampleCurves: 1 + optimizeGameObjects: 0 + motionNodeName: + rigImportErrors: + rigImportWarnings: + animationImportErrors: + animationImportWarnings: + animationRetargetingWarnings: + animationDoRetargetingWarnings: 0 + importAnimatedCustomProperties: 0 + importConstraints: 0 + animationCompression: 1 + animationRotationError: 0.5 + animationPositionError: 0.5 + animationScaleError: 0.5 + animationWrapMode: 0 + extraExposedTransformPaths: [] + extraUserProperties: [] + clipAnimations: [] + isReadable: 1 + meshes: + lODScreenPercentages: [] + globalScale: 1 + meshCompression: 0 + addColliders: 0 + useSRGBMaterialColor: 1 + sortHierarchyByName: 1 + importVisibility: 1 + importBlendShapes: 1 + importCameras: 1 + importLights: 1 + swapUVChannels: 0 + generateSecondaryUV: 0 + useFileUnits: 1 + keepQuads: 0 + weldVertices: 1 + preserveHierarchy: 0 + skinWeightsMode: 0 + maxBonesPerVertex: 4 + minBoneWeight: 0.001 + meshOptimizationFlags: -1 + indexFormat: 0 + secondaryUVAngleDistortion: 8 + secondaryUVAreaDistortion: 15.000001 + secondaryUVHardAngle: 88 + secondaryUVPackMargin: 4 + useFileScale: 1 + tangentSpace: + normalSmoothAngle: 60 + normalImportMode: 0 + tangentImportMode: 3 + normalCalculationMode: 4 + legacyComputeAllNormalsFromSmoothingGroupsWhenMeshHasBlendShapes: 0 + blendShapeNormalImportMode: 1 + normalSmoothingSource: 0 + referencedClips: [] + importAnimation: 1 + humanDescription: + serializedVersion: 3 + human: [] + skeleton: [] + armTwist: 0.5 + foreArmTwist: 0.5 + upperLegTwist: 0.5 + legTwist: 0.5 + armStretch: 0.05 + legStretch: 0.05 + feetSpacing: 0 + globalScale: 1 + rootMotionBoneName: + hasTranslationDoF: 0 + hasExtraRoot: 0 + skeletonHasParents: 1 + lastHumanDescriptionAvatarSource: {instanceID: 0} + autoGenerateAvatarMappingIfUnspecified: 1 + animationType: 2 + humanoidOversampling: 1 + avatarSetup: 0 + additionalBone: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/Floorplan-2.0/DefaultTileset/Meshes/mesh_arch_large_2.fbx b/Packages/Floorplan-2.0/DefaultTileset/Meshes/mesh_arch_large_2.fbx new file mode 100644 index 00000000..a3e95a23 Binary files /dev/null and b/Packages/Floorplan-2.0/DefaultTileset/Meshes/mesh_arch_large_2.fbx differ diff --git a/Packages/Floorplan-2.0/DefaultTileset/Meshes/mesh_arch_large_2.fbx.meta b/Packages/Floorplan-2.0/DefaultTileset/Meshes/mesh_arch_large_2.fbx.meta new file mode 100644 index 00000000..f658bbc1 --- /dev/null +++ b/Packages/Floorplan-2.0/DefaultTileset/Meshes/mesh_arch_large_2.fbx.meta @@ -0,0 +1,99 @@ +fileFormatVersion: 2 +guid: ffb966328d8740d44962d1822eeb11c7 +ModelImporter: + serializedVersion: 19300 + internalIDToNameTable: + - first: + 74: 3889634814954103615 + second: Body|Idle + externalObjects: {} + materials: + materialImportMode: 1 + materialName: 0 + materialSearch: 1 + materialLocation: 1 + animations: + legacyGenerateAnimations: 4 + bakeSimulation: 0 + resampleCurves: 1 + optimizeGameObjects: 0 + motionNodeName: + rigImportErrors: + rigImportWarnings: + animationImportErrors: + animationImportWarnings: + animationRetargetingWarnings: + animationDoRetargetingWarnings: 0 + importAnimatedCustomProperties: 0 + importConstraints: 0 + animationCompression: 1 + animationRotationError: 0.5 + animationPositionError: 0.5 + animationScaleError: 0.5 + animationWrapMode: 0 + extraExposedTransformPaths: [] + extraUserProperties: [] + clipAnimations: [] + isReadable: 1 + meshes: + lODScreenPercentages: [] + globalScale: 1 + meshCompression: 0 + addColliders: 0 + useSRGBMaterialColor: 1 + sortHierarchyByName: 1 + importVisibility: 1 + importBlendShapes: 1 + importCameras: 1 + importLights: 1 + swapUVChannels: 0 + generateSecondaryUV: 0 + useFileUnits: 1 + keepQuads: 0 + weldVertices: 1 + preserveHierarchy: 0 + skinWeightsMode: 0 + maxBonesPerVertex: 4 + minBoneWeight: 0.001 + meshOptimizationFlags: -1 + indexFormat: 0 + secondaryUVAngleDistortion: 8 + secondaryUVAreaDistortion: 15.000001 + secondaryUVHardAngle: 88 + secondaryUVPackMargin: 4 + useFileScale: 1 + tangentSpace: + normalSmoothAngle: 60 + normalImportMode: 0 + tangentImportMode: 3 + normalCalculationMode: 4 + legacyComputeAllNormalsFromSmoothingGroupsWhenMeshHasBlendShapes: 0 + blendShapeNormalImportMode: 1 + normalSmoothingSource: 0 + referencedClips: [] + importAnimation: 1 + humanDescription: + serializedVersion: 3 + human: [] + skeleton: [] + armTwist: 0.5 + foreArmTwist: 0.5 + upperLegTwist: 0.5 + legTwist: 0.5 + armStretch: 0.05 + legStretch: 0.05 + feetSpacing: 0 + globalScale: 1 + rootMotionBoneName: + hasTranslationDoF: 0 + hasExtraRoot: 0 + skeletonHasParents: 1 + lastHumanDescriptionAvatarSource: {instanceID: 0} + autoGenerateAvatarMappingIfUnspecified: 1 + animationType: 2 + humanoidOversampling: 1 + avatarSetup: 0 + additionalBone: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/Floorplan-2.0/DefaultTileset/Meshes/mesh_arch_large_3.fbx b/Packages/Floorplan-2.0/DefaultTileset/Meshes/mesh_arch_large_3.fbx new file mode 100644 index 00000000..0762e917 Binary files /dev/null and b/Packages/Floorplan-2.0/DefaultTileset/Meshes/mesh_arch_large_3.fbx differ diff --git a/Packages/Floorplan-2.0/DefaultTileset/Meshes/mesh_arch_large_3.fbx.meta b/Packages/Floorplan-2.0/DefaultTileset/Meshes/mesh_arch_large_3.fbx.meta new file mode 100644 index 00000000..577e3aa3 --- /dev/null +++ b/Packages/Floorplan-2.0/DefaultTileset/Meshes/mesh_arch_large_3.fbx.meta @@ -0,0 +1,99 @@ +fileFormatVersion: 2 +guid: f73f85382a251584ba9bb903fab009e3 +ModelImporter: + serializedVersion: 19300 + internalIDToNameTable: + - first: + 74: 3889634814954103615 + second: Body|Idle + externalObjects: {} + materials: + materialImportMode: 1 + materialName: 0 + materialSearch: 1 + materialLocation: 1 + animations: + legacyGenerateAnimations: 4 + bakeSimulation: 0 + resampleCurves: 1 + optimizeGameObjects: 0 + motionNodeName: + rigImportErrors: + rigImportWarnings: + animationImportErrors: + animationImportWarnings: + animationRetargetingWarnings: + animationDoRetargetingWarnings: 0 + importAnimatedCustomProperties: 0 + importConstraints: 0 + animationCompression: 1 + animationRotationError: 0.5 + animationPositionError: 0.5 + animationScaleError: 0.5 + animationWrapMode: 0 + extraExposedTransformPaths: [] + extraUserProperties: [] + clipAnimations: [] + isReadable: 1 + meshes: + lODScreenPercentages: [] + globalScale: 1 + meshCompression: 0 + addColliders: 1 + useSRGBMaterialColor: 1 + sortHierarchyByName: 1 + importVisibility: 1 + importBlendShapes: 1 + importCameras: 1 + importLights: 1 + swapUVChannels: 0 + generateSecondaryUV: 0 + useFileUnits: 1 + keepQuads: 0 + weldVertices: 1 + preserveHierarchy: 0 + skinWeightsMode: 0 + maxBonesPerVertex: 4 + minBoneWeight: 0.001 + meshOptimizationFlags: -1 + indexFormat: 0 + secondaryUVAngleDistortion: 8 + secondaryUVAreaDistortion: 15.000001 + secondaryUVHardAngle: 88 + secondaryUVPackMargin: 4 + useFileScale: 1 + tangentSpace: + normalSmoothAngle: 60 + normalImportMode: 0 + tangentImportMode: 3 + normalCalculationMode: 4 + legacyComputeAllNormalsFromSmoothingGroupsWhenMeshHasBlendShapes: 0 + blendShapeNormalImportMode: 1 + normalSmoothingSource: 0 + referencedClips: [] + importAnimation: 1 + humanDescription: + serializedVersion: 3 + human: [] + skeleton: [] + armTwist: 0.5 + foreArmTwist: 0.5 + upperLegTwist: 0.5 + legTwist: 0.5 + armStretch: 0.05 + legStretch: 0.05 + feetSpacing: 0 + globalScale: 1 + rootMotionBoneName: + hasTranslationDoF: 0 + hasExtraRoot: 0 + skeletonHasParents: 1 + lastHumanDescriptionAvatarSource: {instanceID: 0} + autoGenerateAvatarMappingIfUnspecified: 1 + animationType: 2 + humanoidOversampling: 1 + avatarSetup: 0 + additionalBone: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/Floorplan-2.0/DefaultTileset/Meshes/mesh_door.fbx b/Packages/Floorplan-2.0/DefaultTileset/Meshes/mesh_door.fbx new file mode 100644 index 00000000..814cefbf Binary files /dev/null and b/Packages/Floorplan-2.0/DefaultTileset/Meshes/mesh_door.fbx differ diff --git a/Packages/Floorplan-2.0/DefaultTileset/Meshes/mesh_door.fbx.meta b/Packages/Floorplan-2.0/DefaultTileset/Meshes/mesh_door.fbx.meta new file mode 100644 index 00000000..9c8d4c26 --- /dev/null +++ b/Packages/Floorplan-2.0/DefaultTileset/Meshes/mesh_door.fbx.meta @@ -0,0 +1,95 @@ +fileFormatVersion: 2 +guid: 209ba71e1b105f34e9309b2f4a3ff7f1 +ModelImporter: + serializedVersion: 28 + internalIDToNameTable: [] + externalObjects: {} + materials: + materialImportMode: 0 + materialName: 0 + materialSearch: 1 + materialLocation: 1 + animations: + legacyGenerateAnimations: 4 + bakeSimulation: 0 + resampleCurves: 1 + optimizeGameObjects: 0 + motionNodeName: + rigImportErrors: + rigImportWarnings: + animationImportErrors: + animationImportWarnings: + animationRetargetingWarnings: + animationDoRetargetingWarnings: 0 + importAnimatedCustomProperties: 0 + importConstraints: 0 + animationCompression: 1 + animationRotationError: 0.5 + animationPositionError: 0.5 + animationScaleError: 0.5 + animationWrapMode: 0 + extraExposedTransformPaths: [] + extraUserProperties: [] + clipAnimations: [] + isReadable: 1 + meshes: + lODScreenPercentages: [] + globalScale: 1 + meshCompression: 0 + addColliders: 0 + useSRGBMaterialColor: 1 + sortHierarchyByName: 1 + importVisibility: 1 + importBlendShapes: 1 + importCameras: 1 + importLights: 1 + swapUVChannels: 0 + generateSecondaryUV: 1 + useFileUnits: 1 + keepQuads: 0 + weldVertices: 1 + preserveHierarchy: 0 + skinWeightsMode: 0 + maxBonesPerVertex: 4 + minBoneWeight: 0.001 + meshOptimizationFlags: -1 + indexFormat: 0 + secondaryUVAngleDistortion: 8 + secondaryUVAreaDistortion: 15.000001 + secondaryUVHardAngle: 88 + secondaryUVPackMargin: 4 + useFileScale: 1 + tangentSpace: + normalSmoothAngle: 60 + normalImportMode: 0 + tangentImportMode: 3 + normalCalculationMode: 4 + legacyComputeAllNormalsFromSmoothingGroupsWhenMeshHasBlendShapes: 0 + blendShapeNormalImportMode: 1 + normalSmoothingSource: 0 + referencedClips: [] + importAnimation: 1 + humanDescription: + serializedVersion: 3 + human: [] + skeleton: [] + armTwist: 0.5 + foreArmTwist: 0.5 + upperLegTwist: 0.5 + legTwist: 0.5 + armStretch: 0.05 + legStretch: 0.05 + feetSpacing: 0 + globalScale: 1 + rootMotionBoneName: + hasTranslationDoF: 0 + hasExtraRoot: 0 + skeletonHasParents: 1 + lastHumanDescriptionAvatarSource: {instanceID: 0} + animationType: 0 + humanoidOversampling: 1 + avatarSetup: 0 + additionalBone: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/Floorplan-2.0/DefaultTileset/Meshes/mesh_pillar.fbx b/Packages/Floorplan-2.0/DefaultTileset/Meshes/mesh_pillar.fbx new file mode 100644 index 00000000..9b27ca88 Binary files /dev/null and b/Packages/Floorplan-2.0/DefaultTileset/Meshes/mesh_pillar.fbx differ diff --git a/Packages/Floorplan-2.0/DefaultTileset/Meshes/mesh_pillar.fbx.meta b/Packages/Floorplan-2.0/DefaultTileset/Meshes/mesh_pillar.fbx.meta new file mode 100644 index 00000000..80300fd4 --- /dev/null +++ b/Packages/Floorplan-2.0/DefaultTileset/Meshes/mesh_pillar.fbx.meta @@ -0,0 +1,95 @@ +fileFormatVersion: 2 +guid: cf71fdf079dbc574f992c8fffc463935 +ModelImporter: + serializedVersion: 28 + internalIDToNameTable: [] + externalObjects: {} + materials: + materialImportMode: 0 + materialName: 0 + materialSearch: 1 + materialLocation: 1 + animations: + legacyGenerateAnimations: 4 + bakeSimulation: 0 + resampleCurves: 1 + optimizeGameObjects: 0 + motionNodeName: + rigImportErrors: + rigImportWarnings: + animationImportErrors: + animationImportWarnings: + animationRetargetingWarnings: + animationDoRetargetingWarnings: 0 + importAnimatedCustomProperties: 0 + importConstraints: 0 + animationCompression: 1 + animationRotationError: 0.5 + animationPositionError: 0.5 + animationScaleError: 0.5 + animationWrapMode: 0 + extraExposedTransformPaths: [] + extraUserProperties: [] + clipAnimations: [] + isReadable: 1 + meshes: + lODScreenPercentages: [] + globalScale: 1 + meshCompression: 0 + addColliders: 0 + useSRGBMaterialColor: 1 + sortHierarchyByName: 1 + importVisibility: 1 + importBlendShapes: 1 + importCameras: 1 + importLights: 1 + swapUVChannels: 0 + generateSecondaryUV: 1 + useFileUnits: 1 + keepQuads: 0 + weldVertices: 1 + preserveHierarchy: 0 + skinWeightsMode: 0 + maxBonesPerVertex: 4 + minBoneWeight: 0.001 + meshOptimizationFlags: -1 + indexFormat: 0 + secondaryUVAngleDistortion: 8 + secondaryUVAreaDistortion: 15.000001 + secondaryUVHardAngle: 88 + secondaryUVPackMargin: 4 + useFileScale: 1 + tangentSpace: + normalSmoothAngle: 60 + normalImportMode: 0 + tangentImportMode: 3 + normalCalculationMode: 4 + legacyComputeAllNormalsFromSmoothingGroupsWhenMeshHasBlendShapes: 0 + blendShapeNormalImportMode: 1 + normalSmoothingSource: 0 + referencedClips: [] + importAnimation: 1 + humanDescription: + serializedVersion: 3 + human: [] + skeleton: [] + armTwist: 0.5 + foreArmTwist: 0.5 + upperLegTwist: 0.5 + legTwist: 0.5 + armStretch: 0.05 + legStretch: 0.05 + feetSpacing: 0 + globalScale: 1 + rootMotionBoneName: + hasTranslationDoF: 0 + hasExtraRoot: 0 + skeletonHasParents: 1 + lastHumanDescriptionAvatarSource: {instanceID: 0} + animationType: 0 + humanoidOversampling: 1 + avatarSetup: 0 + additionalBone: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/Floorplan-2.0/DefaultTileset/Meshes/mesh_tile.fbx b/Packages/Floorplan-2.0/DefaultTileset/Meshes/mesh_tile.fbx new file mode 100644 index 00000000..a94ff30a Binary files /dev/null and b/Packages/Floorplan-2.0/DefaultTileset/Meshes/mesh_tile.fbx differ diff --git a/Packages/Floorplan-2.0/DefaultTileset/Meshes/mesh_tile.fbx.meta b/Packages/Floorplan-2.0/DefaultTileset/Meshes/mesh_tile.fbx.meta new file mode 100644 index 00000000..da5a7fe0 --- /dev/null +++ b/Packages/Floorplan-2.0/DefaultTileset/Meshes/mesh_tile.fbx.meta @@ -0,0 +1,95 @@ +fileFormatVersion: 2 +guid: 898bd436bf2d0414982cf1e12cb7c64d +ModelImporter: + serializedVersion: 28 + internalIDToNameTable: [] + externalObjects: {} + materials: + materialImportMode: 0 + materialName: 0 + materialSearch: 1 + materialLocation: 1 + animations: + legacyGenerateAnimations: 4 + bakeSimulation: 0 + resampleCurves: 1 + optimizeGameObjects: 0 + motionNodeName: + rigImportErrors: + rigImportWarnings: + animationImportErrors: + animationImportWarnings: + animationRetargetingWarnings: + animationDoRetargetingWarnings: 0 + importAnimatedCustomProperties: 0 + importConstraints: 0 + animationCompression: 1 + animationRotationError: 0.5 + animationPositionError: 0.5 + animationScaleError: 0.5 + animationWrapMode: 0 + extraExposedTransformPaths: [] + extraUserProperties: [] + clipAnimations: [] + isReadable: 1 + meshes: + lODScreenPercentages: [] + globalScale: 1 + meshCompression: 0 + addColliders: 0 + useSRGBMaterialColor: 1 + sortHierarchyByName: 1 + importVisibility: 1 + importBlendShapes: 1 + importCameras: 1 + importLights: 1 + swapUVChannels: 0 + generateSecondaryUV: 1 + useFileUnits: 1 + keepQuads: 0 + weldVertices: 1 + preserveHierarchy: 0 + skinWeightsMode: 0 + maxBonesPerVertex: 4 + minBoneWeight: 0.001 + meshOptimizationFlags: -1 + indexFormat: 0 + secondaryUVAngleDistortion: 8 + secondaryUVAreaDistortion: 15.000001 + secondaryUVHardAngle: 88 + secondaryUVPackMargin: 4 + useFileScale: 1 + tangentSpace: + normalSmoothAngle: 60 + normalImportMode: 0 + tangentImportMode: 3 + normalCalculationMode: 4 + legacyComputeAllNormalsFromSmoothingGroupsWhenMeshHasBlendShapes: 0 + blendShapeNormalImportMode: 1 + normalSmoothingSource: 0 + referencedClips: [] + importAnimation: 1 + humanDescription: + serializedVersion: 3 + human: [] + skeleton: [] + armTwist: 0.5 + foreArmTwist: 0.5 + upperLegTwist: 0.5 + legTwist: 0.5 + armStretch: 0.05 + legStretch: 0.05 + feetSpacing: 0 + globalScale: 1 + rootMotionBoneName: + hasTranslationDoF: 0 + hasExtraRoot: 0 + skeletonHasParents: 1 + lastHumanDescriptionAvatarSource: {instanceID: 0} + animationType: 0 + humanoidOversampling: 1 + avatarSetup: 0 + additionalBone: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/Floorplan-2.0/DefaultTileset/Meshes/mesh_wall.fbx b/Packages/Floorplan-2.0/DefaultTileset/Meshes/mesh_wall.fbx new file mode 100644 index 00000000..422dafea Binary files /dev/null and b/Packages/Floorplan-2.0/DefaultTileset/Meshes/mesh_wall.fbx differ diff --git a/Packages/Floorplan-2.0/DefaultTileset/Meshes/mesh_wall.fbx.meta b/Packages/Floorplan-2.0/DefaultTileset/Meshes/mesh_wall.fbx.meta new file mode 100644 index 00000000..b1fdcb00 --- /dev/null +++ b/Packages/Floorplan-2.0/DefaultTileset/Meshes/mesh_wall.fbx.meta @@ -0,0 +1,95 @@ +fileFormatVersion: 2 +guid: 9ba1cf0f4d4975a4d8b5ff5a2acac3db +ModelImporter: + serializedVersion: 28 + internalIDToNameTable: [] + externalObjects: {} + materials: + materialImportMode: 0 + materialName: 0 + materialSearch: 1 + materialLocation: 1 + animations: + legacyGenerateAnimations: 4 + bakeSimulation: 0 + resampleCurves: 1 + optimizeGameObjects: 0 + motionNodeName: + rigImportErrors: + rigImportWarnings: + animationImportErrors: + animationImportWarnings: + animationRetargetingWarnings: + animationDoRetargetingWarnings: 0 + importAnimatedCustomProperties: 0 + importConstraints: 0 + animationCompression: 1 + animationRotationError: 0.5 + animationPositionError: 0.5 + animationScaleError: 0.5 + animationWrapMode: 0 + extraExposedTransformPaths: [] + extraUserProperties: [] + clipAnimations: [] + isReadable: 1 + meshes: + lODScreenPercentages: [] + globalScale: 1 + meshCompression: 0 + addColliders: 0 + useSRGBMaterialColor: 1 + sortHierarchyByName: 1 + importVisibility: 1 + importBlendShapes: 1 + importCameras: 1 + importLights: 1 + swapUVChannels: 0 + generateSecondaryUV: 1 + useFileUnits: 1 + keepQuads: 0 + weldVertices: 1 + preserveHierarchy: 0 + skinWeightsMode: 0 + maxBonesPerVertex: 4 + minBoneWeight: 0.001 + meshOptimizationFlags: -1 + indexFormat: 0 + secondaryUVAngleDistortion: 8 + secondaryUVAreaDistortion: 15.000001 + secondaryUVHardAngle: 88 + secondaryUVPackMargin: 4 + useFileScale: 1 + tangentSpace: + normalSmoothAngle: 60 + normalImportMode: 0 + tangentImportMode: 3 + normalCalculationMode: 4 + legacyComputeAllNormalsFromSmoothingGroupsWhenMeshHasBlendShapes: 0 + blendShapeNormalImportMode: 1 + normalSmoothingSource: 0 + referencedClips: [] + importAnimation: 1 + humanDescription: + serializedVersion: 3 + human: [] + skeleton: [] + armTwist: 0.5 + foreArmTwist: 0.5 + upperLegTwist: 0.5 + legTwist: 0.5 + armStretch: 0.05 + legStretch: 0.05 + feetSpacing: 0 + globalScale: 1 + rootMotionBoneName: + hasTranslationDoF: 0 + hasExtraRoot: 0 + skeletonHasParents: 1 + lastHumanDescriptionAvatarSource: {instanceID: 0} + animationType: 0 + humanoidOversampling: 1 + avatarSetup: 0 + additionalBone: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/Floorplan-2.0/DefaultTileset/Meshes/mesh_window.fbx b/Packages/Floorplan-2.0/DefaultTileset/Meshes/mesh_window.fbx new file mode 100644 index 00000000..954cd380 Binary files /dev/null and b/Packages/Floorplan-2.0/DefaultTileset/Meshes/mesh_window.fbx differ diff --git a/Packages/Floorplan-2.0/DefaultTileset/Meshes/mesh_window.fbx.meta b/Packages/Floorplan-2.0/DefaultTileset/Meshes/mesh_window.fbx.meta new file mode 100644 index 00000000..e1c9de19 --- /dev/null +++ b/Packages/Floorplan-2.0/DefaultTileset/Meshes/mesh_window.fbx.meta @@ -0,0 +1,95 @@ +fileFormatVersion: 2 +guid: cb3740ab608be7c4aa803b547e7fc259 +ModelImporter: + serializedVersion: 28 + internalIDToNameTable: [] + externalObjects: {} + materials: + materialImportMode: 0 + materialName: 0 + materialSearch: 1 + materialLocation: 1 + animations: + legacyGenerateAnimations: 4 + bakeSimulation: 0 + resampleCurves: 1 + optimizeGameObjects: 0 + motionNodeName: + rigImportErrors: + rigImportWarnings: + animationImportErrors: + animationImportWarnings: + animationRetargetingWarnings: + animationDoRetargetingWarnings: 0 + importAnimatedCustomProperties: 0 + importConstraints: 0 + animationCompression: 1 + animationRotationError: 0.5 + animationPositionError: 0.5 + animationScaleError: 0.5 + animationWrapMode: 0 + extraExposedTransformPaths: [] + extraUserProperties: [] + clipAnimations: [] + isReadable: 1 + meshes: + lODScreenPercentages: [] + globalScale: 1 + meshCompression: 0 + addColliders: 0 + useSRGBMaterialColor: 1 + sortHierarchyByName: 1 + importVisibility: 1 + importBlendShapes: 1 + importCameras: 1 + importLights: 1 + swapUVChannels: 0 + generateSecondaryUV: 1 + useFileUnits: 1 + keepQuads: 0 + weldVertices: 1 + preserveHierarchy: 0 + skinWeightsMode: 0 + maxBonesPerVertex: 4 + minBoneWeight: 0.001 + meshOptimizationFlags: -1 + indexFormat: 0 + secondaryUVAngleDistortion: 8 + secondaryUVAreaDistortion: 15.000001 + secondaryUVHardAngle: 88 + secondaryUVPackMargin: 4 + useFileScale: 1 + tangentSpace: + normalSmoothAngle: 60 + normalImportMode: 0 + tangentImportMode: 3 + normalCalculationMode: 4 + legacyComputeAllNormalsFromSmoothingGroupsWhenMeshHasBlendShapes: 0 + blendShapeNormalImportMode: 1 + normalSmoothingSource: 0 + referencedClips: [] + importAnimation: 1 + humanDescription: + serializedVersion: 3 + human: [] + skeleton: [] + armTwist: 0.5 + foreArmTwist: 0.5 + upperLegTwist: 0.5 + legTwist: 0.5 + armStretch: 0.05 + legStretch: 0.05 + feetSpacing: 0 + globalScale: 1 + rootMotionBoneName: + hasTranslationDoF: 0 + hasExtraRoot: 0 + skeletonHasParents: 1 + lastHumanDescriptionAvatarSource: {instanceID: 0} + animationType: 0 + humanoidOversampling: 1 + avatarSetup: 0 + additionalBone: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/Floorplan-2.0/DefaultTileset/Meshes/mesh_window_large_1.fbx b/Packages/Floorplan-2.0/DefaultTileset/Meshes/mesh_window_large_1.fbx new file mode 100644 index 00000000..89a1a5a0 Binary files /dev/null and b/Packages/Floorplan-2.0/DefaultTileset/Meshes/mesh_window_large_1.fbx differ diff --git a/Packages/Floorplan-2.0/DefaultTileset/Meshes/mesh_window_large_1.fbx.meta b/Packages/Floorplan-2.0/DefaultTileset/Meshes/mesh_window_large_1.fbx.meta new file mode 100644 index 00000000..1cad6a0a --- /dev/null +++ b/Packages/Floorplan-2.0/DefaultTileset/Meshes/mesh_window_large_1.fbx.meta @@ -0,0 +1,99 @@ +fileFormatVersion: 2 +guid: 11b3b9616100d8b4e89384232116cf7b +ModelImporter: + serializedVersion: 19300 + internalIDToNameTable: + - first: + 74: 3889634814954103615 + second: Body|Idle + externalObjects: {} + materials: + materialImportMode: 1 + materialName: 0 + materialSearch: 1 + materialLocation: 1 + animations: + legacyGenerateAnimations: 4 + bakeSimulation: 0 + resampleCurves: 1 + optimizeGameObjects: 0 + motionNodeName: + rigImportErrors: + rigImportWarnings: + animationImportErrors: + animationImportWarnings: + animationRetargetingWarnings: + animationDoRetargetingWarnings: 0 + importAnimatedCustomProperties: 0 + importConstraints: 0 + animationCompression: 1 + animationRotationError: 0.5 + animationPositionError: 0.5 + animationScaleError: 0.5 + animationWrapMode: 0 + extraExposedTransformPaths: [] + extraUserProperties: [] + clipAnimations: [] + isReadable: 1 + meshes: + lODScreenPercentages: [] + globalScale: 1 + meshCompression: 0 + addColliders: 0 + useSRGBMaterialColor: 1 + sortHierarchyByName: 1 + importVisibility: 1 + importBlendShapes: 1 + importCameras: 1 + importLights: 1 + swapUVChannels: 0 + generateSecondaryUV: 0 + useFileUnits: 1 + keepQuads: 0 + weldVertices: 1 + preserveHierarchy: 0 + skinWeightsMode: 0 + maxBonesPerVertex: 4 + minBoneWeight: 0.001 + meshOptimizationFlags: -1 + indexFormat: 0 + secondaryUVAngleDistortion: 8 + secondaryUVAreaDistortion: 15.000001 + secondaryUVHardAngle: 88 + secondaryUVPackMargin: 4 + useFileScale: 1 + tangentSpace: + normalSmoothAngle: 60 + normalImportMode: 0 + tangentImportMode: 3 + normalCalculationMode: 4 + legacyComputeAllNormalsFromSmoothingGroupsWhenMeshHasBlendShapes: 0 + blendShapeNormalImportMode: 1 + normalSmoothingSource: 0 + referencedClips: [] + importAnimation: 1 + humanDescription: + serializedVersion: 3 + human: [] + skeleton: [] + armTwist: 0.5 + foreArmTwist: 0.5 + upperLegTwist: 0.5 + legTwist: 0.5 + armStretch: 0.05 + legStretch: 0.05 + feetSpacing: 0 + globalScale: 1 + rootMotionBoneName: + hasTranslationDoF: 0 + hasExtraRoot: 0 + skeletonHasParents: 1 + lastHumanDescriptionAvatarSource: {instanceID: 0} + autoGenerateAvatarMappingIfUnspecified: 1 + animationType: 2 + humanoidOversampling: 1 + avatarSetup: 0 + additionalBone: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/Floorplan-2.0/DefaultTileset/Meshes/mesh_window_large_2.fbx b/Packages/Floorplan-2.0/DefaultTileset/Meshes/mesh_window_large_2.fbx new file mode 100644 index 00000000..b2ba1efb Binary files /dev/null and b/Packages/Floorplan-2.0/DefaultTileset/Meshes/mesh_window_large_2.fbx differ diff --git a/Packages/Floorplan-2.0/DefaultTileset/Meshes/mesh_window_large_2.fbx.meta b/Packages/Floorplan-2.0/DefaultTileset/Meshes/mesh_window_large_2.fbx.meta new file mode 100644 index 00000000..6ba7d06b --- /dev/null +++ b/Packages/Floorplan-2.0/DefaultTileset/Meshes/mesh_window_large_2.fbx.meta @@ -0,0 +1,99 @@ +fileFormatVersion: 2 +guid: 8231ef2cd10772d4a84e3e8900087151 +ModelImporter: + serializedVersion: 19300 + internalIDToNameTable: + - first: + 74: 3889634814954103615 + second: Body|Idle + externalObjects: {} + materials: + materialImportMode: 1 + materialName: 0 + materialSearch: 1 + materialLocation: 1 + animations: + legacyGenerateAnimations: 4 + bakeSimulation: 0 + resampleCurves: 1 + optimizeGameObjects: 0 + motionNodeName: + rigImportErrors: + rigImportWarnings: + animationImportErrors: + animationImportWarnings: + animationRetargetingWarnings: + animationDoRetargetingWarnings: 0 + importAnimatedCustomProperties: 0 + importConstraints: 0 + animationCompression: 1 + animationRotationError: 0.5 + animationPositionError: 0.5 + animationScaleError: 0.5 + animationWrapMode: 0 + extraExposedTransformPaths: [] + extraUserProperties: [] + clipAnimations: [] + isReadable: 1 + meshes: + lODScreenPercentages: [] + globalScale: 1 + meshCompression: 0 + addColliders: 0 + useSRGBMaterialColor: 1 + sortHierarchyByName: 1 + importVisibility: 1 + importBlendShapes: 1 + importCameras: 1 + importLights: 1 + swapUVChannels: 0 + generateSecondaryUV: 0 + useFileUnits: 1 + keepQuads: 0 + weldVertices: 1 + preserveHierarchy: 0 + skinWeightsMode: 0 + maxBonesPerVertex: 4 + minBoneWeight: 0.001 + meshOptimizationFlags: -1 + indexFormat: 0 + secondaryUVAngleDistortion: 8 + secondaryUVAreaDistortion: 15.000001 + secondaryUVHardAngle: 88 + secondaryUVPackMargin: 4 + useFileScale: 1 + tangentSpace: + normalSmoothAngle: 60 + normalImportMode: 0 + tangentImportMode: 3 + normalCalculationMode: 4 + legacyComputeAllNormalsFromSmoothingGroupsWhenMeshHasBlendShapes: 0 + blendShapeNormalImportMode: 1 + normalSmoothingSource: 0 + referencedClips: [] + importAnimation: 1 + humanDescription: + serializedVersion: 3 + human: [] + skeleton: [] + armTwist: 0.5 + foreArmTwist: 0.5 + upperLegTwist: 0.5 + legTwist: 0.5 + armStretch: 0.05 + legStretch: 0.05 + feetSpacing: 0 + globalScale: 1 + rootMotionBoneName: + hasTranslationDoF: 0 + hasExtraRoot: 0 + skeletonHasParents: 1 + lastHumanDescriptionAvatarSource: {instanceID: 0} + autoGenerateAvatarMappingIfUnspecified: 1 + animationType: 2 + humanoidOversampling: 1 + avatarSetup: 0 + additionalBone: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/Floorplan-2.0/DefaultTileset/Prefabs.meta b/Packages/Floorplan-2.0/DefaultTileset/Prefabs.meta new file mode 100644 index 00000000..7c9d23d4 --- /dev/null +++ b/Packages/Floorplan-2.0/DefaultTileset/Prefabs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 383c29077df6e1e479eb331d8549dada +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/Floorplan-2.0/DefaultTileset/Prefabs/prefab_arch.prefab b/Packages/Floorplan-2.0/DefaultTileset/Prefabs/prefab_arch.prefab new file mode 100644 index 00000000..3d5e4eea --- /dev/null +++ b/Packages/Floorplan-2.0/DefaultTileset/Prefabs/prefab_arch.prefab @@ -0,0 +1,261 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &764512528839231858 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3238663465960411067} + - component: {fileID: 162772817278516586} + m_Layer: 0 + m_Name: prefab_arch + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &3238663465960411067 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 764512528839231858} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 2, y: 1, z: 1} + m_Children: + - {fileID: 2357346850295016691} + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &162772817278516586 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 764512528839231858} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d933d9bbd3e611d41a488afaa8ac3106, type: 3} + m_Name: + m_EditorClassIdentifier: + tileset: {fileID: 0} + stuff: [] + tileType: 0 +--- !u!64 &3543629257834219654 +MeshCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1652156548449738464} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 3 + m_Convex: 0 + m_CookingOptions: 14 + m_Mesh: {fileID: 8832423429615264058, guid: 93bb1c36eb1cdbf4188f1f0bc70f96ce, type: 3} +--- !u!54 &1543259297581707391 +Rigidbody: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3273208701072518811} + serializedVersion: 2 + m_Mass: 1 + m_Drag: 0 + m_AngularDrag: 0.05 + m_UseGravity: 1 + m_IsKinematic: 0 + m_Interpolate: 0 + m_Constraints: 0 + m_CollisionDetection: 0 +--- !u!65 &3375770413224618234 +BoxCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3273208701072518811} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Size: {x: 0.906, y: 0.05950026, z: 2.06} + m_Center: {x: 0.45300007, y: -0.00000006425381, z: -1.2014835e-14} +--- !u!59 &7625787694184367425 +HingeJoint: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3273208701072518811} + m_ConnectedBody: {fileID: 0} + m_Anchor: {x: 0, y: 0, z: 0} + m_Axis: {x: 0, y: 0, z: 1} + m_AutoConfigureConnectedAnchor: 1 + m_ConnectedAnchor: {x: 0.03571611, y: 1.0339998, z: 0.5456195} + m_UseSpring: 1 + m_Spring: + spring: 5 + damper: 2.5 + targetPosition: 0 + m_UseMotor: 0 + m_Motor: + targetVelocity: 0 + force: 0 + freeSpin: 0 + m_UseLimits: 0 + m_Limits: + min: 0 + max: 0 + bounciness: 0 + bounceMinVelocity: 0.2 + contactDistance: 0 + m_BreakForce: Infinity + m_BreakTorque: Infinity + m_EnableCollision: 0 + m_EnablePreprocessing: 1 + m_MassScale: 1 + m_ConnectedMassScale: 1 +--- !u!1001 &7335324440858839017 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 3238663465960411067} + m_Modifications: + - target: {fileID: -8733040240986845777, guid: 93bb1c36eb1cdbf4188f1f0bc70f96ce, + type: 3} + propertyPath: m_Materials.Array.data[0] + value: + objectReference: {fileID: -1444460858095362738, guid: b2eb03c53d26245438c69206586a6453, + type: 3} + - target: {fileID: -7563646829917759825, guid: 93bb1c36eb1cdbf4188f1f0bc70f96ce, + type: 3} + propertyPath: m_LocalScale.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: -7563646829917759825, guid: 93bb1c36eb1cdbf4188f1f0bc70f96ce, + type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -4216859302048453862, guid: 93bb1c36eb1cdbf4188f1f0bc70f96ce, + type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -4216859302048453862, guid: 93bb1c36eb1cdbf4188f1f0bc70f96ce, + type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -4216859302048453862, guid: 93bb1c36eb1cdbf4188f1f0bc70f96ce, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -4216859302048453862, guid: 93bb1c36eb1cdbf4188f1f0bc70f96ce, + type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: -4216859302048453862, guid: 93bb1c36eb1cdbf4188f1f0bc70f96ce, + type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: -4216859302048453862, guid: 93bb1c36eb1cdbf4188f1f0bc70f96ce, + type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: -4216859302048453862, guid: 93bb1c36eb1cdbf4188f1f0bc70f96ce, + type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: -4216859302048453862, guid: 93bb1c36eb1cdbf4188f1f0bc70f96ce, + type: 3} + propertyPath: m_RootOrder + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -4216859302048453862, guid: 93bb1c36eb1cdbf4188f1f0bc70f96ce, + type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -4216859302048453862, guid: 93bb1c36eb1cdbf4188f1f0bc70f96ce, + type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -4216859302048453862, guid: 93bb1c36eb1cdbf4188f1f0bc70f96ce, + type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -3990036101274998414, guid: 93bb1c36eb1cdbf4188f1f0bc70f96ce, + type: 3} + propertyPath: m_Layer + value: 8 + objectReference: {fileID: 0} + - target: {fileID: -1835110200850362654, guid: 93bb1c36eb1cdbf4188f1f0bc70f96ce, + type: 3} + propertyPath: m_Materials.Array.data[0] + value: + objectReference: {fileID: 2100000, guid: 4d2aa06d1320b6040bb1c805bafd0225, type: 2} + - target: {fileID: -927199367670048503, guid: 93bb1c36eb1cdbf4188f1f0bc70f96ce, + type: 3} + propertyPath: m_Name + value: mech_arch + objectReference: {fileID: 0} + - target: {fileID: -927199367670048503, guid: 93bb1c36eb1cdbf4188f1f0bc70f96ce, + type: 3} + propertyPath: m_StaticEditorFlags + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 2852075536150467593, guid: 93bb1c36eb1cdbf4188f1f0bc70f96ce, + type: 3} + propertyPath: m_StaticEditorFlags + value: 4294967295 + objectReference: {fileID: 0} + - target: {fileID: 4030607891359307118, guid: 93bb1c36eb1cdbf4188f1f0bc70f96ce, + type: 3} + propertyPath: m_Materials.Array.data[0] + value: + objectReference: {fileID: -4973734387028869240, guid: b2eb03c53d26245438c69206586a6453, + type: 3} + - target: {fileID: 6919256252482832688, guid: 93bb1c36eb1cdbf4188f1f0bc70f96ce, + type: 3} + propertyPath: m_Layer + value: 8 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 93bb1c36eb1cdbf4188f1f0bc70f96ce, type: 3} +--- !u!1 &1652156548449738464 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: -927199367670048503, guid: 93bb1c36eb1cdbf4188f1f0bc70f96ce, + type: 3} + m_PrefabInstance: {fileID: 7335324440858839017} + m_PrefabAsset: {fileID: 0} +--- !u!4 &2357346850295016691 stripped +Transform: + m_CorrespondingSourceObject: {fileID: -4216859302048453862, guid: 93bb1c36eb1cdbf4188f1f0bc70f96ce, + type: 3} + m_PrefabInstance: {fileID: 7335324440858839017} + m_PrefabAsset: {fileID: 0} +--- !u!1 &3273208701072518811 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: -3990036101274998414, guid: 93bb1c36eb1cdbf4188f1f0bc70f96ce, + type: 3} + m_PrefabInstance: {fileID: 7335324440858839017} + m_PrefabAsset: {fileID: 0} diff --git a/Packages/Floorplan-2.0/DefaultTileset/Prefabs/prefab_arch.prefab.meta b/Packages/Floorplan-2.0/DefaultTileset/Prefabs/prefab_arch.prefab.meta new file mode 100644 index 00000000..c94729c3 --- /dev/null +++ b/Packages/Floorplan-2.0/DefaultTileset/Prefabs/prefab_arch.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 934ba286f9a61cf4c8abe65a39b8202c +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/Floorplan-2.0/DefaultTileset/Prefabs/prefab_arch_bathroom.prefab b/Packages/Floorplan-2.0/DefaultTileset/Prefabs/prefab_arch_bathroom.prefab new file mode 100644 index 00000000..cf115ef4 --- /dev/null +++ b/Packages/Floorplan-2.0/DefaultTileset/Prefabs/prefab_arch_bathroom.prefab @@ -0,0 +1,287 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &764512528839231858 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3238663465960411067} + - component: {fileID: 162772817278516586} + m_Layer: 0 + m_Name: prefab_arch_bathroom + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &3238663465960411067 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 764512528839231858} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 2, y: 1, z: 1} + m_Children: + - {fileID: 2357346850295016691} + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &162772817278516586 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 764512528839231858} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d933d9bbd3e611d41a488afaa8ac3106, type: 3} + m_Name: + m_EditorClassIdentifier: + tileset: {fileID: 0} + stuff: [] + tileType: 0 +--- !u!64 &3543629257834219654 +MeshCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1652156548449738464} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 3 + m_Convex: 0 + m_CookingOptions: 14 + m_Mesh: {fileID: 8832423429615264058, guid: 93bb1c36eb1cdbf4188f1f0bc70f96ce, type: 3} +--- !u!54 &7021767950686663468 +Rigidbody: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3273208701072518811} + serializedVersion: 2 + m_Mass: 1 + m_Drag: 0 + m_AngularDrag: 0.05 + m_UseGravity: 1 + m_IsKinematic: 0 + m_Interpolate: 0 + m_Constraints: 0 + m_CollisionDetection: 0 +--- !u!65 &6672570449103138207 +BoxCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3273208701072518811} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Size: {x: 0.906, y: 0.05950026, z: 2.06} + m_Center: {x: 0.45300007, y: -0.00000006425381, z: -1.2014835e-14} +--- !u!59 &1021148599513936903 +HingeJoint: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3273208701072518811} + m_ConnectedBody: {fileID: 0} + m_Anchor: {x: 0, y: 0, z: 0} + m_Axis: {x: 0, y: 0, z: 1} + m_AutoConfigureConnectedAnchor: 1 + m_ConnectedAnchor: {x: 0.03571611, y: 1.0339999, z: 0.54699993} + m_UseSpring: 1 + m_Spring: + spring: 5 + damper: 2.5 + targetPosition: 0 + m_UseMotor: 0 + m_Motor: + targetVelocity: 0 + force: 0 + freeSpin: 0 + m_UseLimits: 0 + m_Limits: + min: 0 + max: 0 + bounciness: 0 + bounceMinVelocity: 0.2 + contactDistance: 0 + m_BreakForce: Infinity + m_BreakTorque: Infinity + m_EnableCollision: 0 + m_EnablePreprocessing: 1 + m_MassScale: 1 + m_ConnectedMassScale: 1 +--- !u!1001 &7335324440858839017 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 3238663465960411067} + m_Modifications: + - target: {fileID: -8733040240986845777, guid: 93bb1c36eb1cdbf4188f1f0bc70f96ce, + type: 3} + propertyPath: m_Materials.Array.data[0] + value: + objectReference: {fileID: -1444460858095362738, guid: b2eb03c53d26245438c69206586a6453, + type: 3} + - target: {fileID: -7563646829917759825, guid: 93bb1c36eb1cdbf4188f1f0bc70f96ce, + type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -7563646829917759825, guid: 93bb1c36eb1cdbf4188f1f0bc70f96ce, + type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -7563646829917759825, guid: 93bb1c36eb1cdbf4188f1f0bc70f96ce, + type: 3} + propertyPath: m_LocalPosition.z + value: 1 + objectReference: {fileID: 0} + - target: {fileID: -7563646829917759825, guid: 93bb1c36eb1cdbf4188f1f0bc70f96ce, + type: 3} + propertyPath: m_LocalScale.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: -5178661895559278292, guid: 93bb1c36eb1cdbf4188f1f0bc70f96ce, + type: 3} + propertyPath: m_Mesh + value: + objectReference: {fileID: -6271306929735890310, guid: 0b7133da5b819fd4bbd0830fefa5981a, + type: 3} + - target: {fileID: -4216859302048453862, guid: 93bb1c36eb1cdbf4188f1f0bc70f96ce, + type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -4216859302048453862, guid: 93bb1c36eb1cdbf4188f1f0bc70f96ce, + type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -4216859302048453862, guid: 93bb1c36eb1cdbf4188f1f0bc70f96ce, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -4216859302048453862, guid: 93bb1c36eb1cdbf4188f1f0bc70f96ce, + type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: -4216859302048453862, guid: 93bb1c36eb1cdbf4188f1f0bc70f96ce, + type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: -4216859302048453862, guid: 93bb1c36eb1cdbf4188f1f0bc70f96ce, + type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: -4216859302048453862, guid: 93bb1c36eb1cdbf4188f1f0bc70f96ce, + type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: -4216859302048453862, guid: 93bb1c36eb1cdbf4188f1f0bc70f96ce, + type: 3} + propertyPath: m_RootOrder + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -4216859302048453862, guid: 93bb1c36eb1cdbf4188f1f0bc70f96ce, + type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -4216859302048453862, guid: 93bb1c36eb1cdbf4188f1f0bc70f96ce, + type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -4216859302048453862, guid: 93bb1c36eb1cdbf4188f1f0bc70f96ce, + type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -4216859302048453862, guid: 93bb1c36eb1cdbf4188f1f0bc70f96ce, + type: 3} + propertyPath: m_LocalScale.x + value: 1 + objectReference: {fileID: 0} + - target: {fileID: -4216859302048453862, guid: 93bb1c36eb1cdbf4188f1f0bc70f96ce, + type: 3} + propertyPath: m_LocalScale.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: -4216859302048453862, guid: 93bb1c36eb1cdbf4188f1f0bc70f96ce, + type: 3} + propertyPath: m_LocalScale.z + value: 1 + objectReference: {fileID: 0} + - target: {fileID: -1835110200850362654, guid: 93bb1c36eb1cdbf4188f1f0bc70f96ce, + type: 3} + propertyPath: m_Materials.Array.data[0] + value: + objectReference: {fileID: 2100000, guid: 4d2aa06d1320b6040bb1c805bafd0225, type: 2} + - target: {fileID: -1504981713932161579, guid: 93bb1c36eb1cdbf4188f1f0bc70f96ce, + type: 3} + propertyPath: m_Materials.Array.size + value: 2 + objectReference: {fileID: 0} + - target: {fileID: -1504981713932161579, guid: 93bb1c36eb1cdbf4188f1f0bc70f96ce, + type: 3} + propertyPath: m_Materials.Array.data[1] + value: + objectReference: {fileID: 2100000, guid: a5a4f06840a9e084dbaeedd7404be8e2, type: 2} + - target: {fileID: -927199367670048503, guid: 93bb1c36eb1cdbf4188f1f0bc70f96ce, + type: 3} + propertyPath: m_Name + value: mech_arch + objectReference: {fileID: 0} + - target: {fileID: -927199367670048503, guid: 93bb1c36eb1cdbf4188f1f0bc70f96ce, + type: 3} + propertyPath: m_StaticEditorFlags + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4030607891359307118, guid: 93bb1c36eb1cdbf4188f1f0bc70f96ce, + type: 3} + propertyPath: m_Materials.Array.data[0] + value: + objectReference: {fileID: -4973734387028869240, guid: b2eb03c53d26245438c69206586a6453, + type: 3} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 93bb1c36eb1cdbf4188f1f0bc70f96ce, type: 3} +--- !u!1 &1652156548449738464 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: -927199367670048503, guid: 93bb1c36eb1cdbf4188f1f0bc70f96ce, + type: 3} + m_PrefabInstance: {fileID: 7335324440858839017} + m_PrefabAsset: {fileID: 0} +--- !u!4 &2357346850295016691 stripped +Transform: + m_CorrespondingSourceObject: {fileID: -4216859302048453862, guid: 93bb1c36eb1cdbf4188f1f0bc70f96ce, + type: 3} + m_PrefabInstance: {fileID: 7335324440858839017} + m_PrefabAsset: {fileID: 0} +--- !u!1 &3273208701072518811 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: -3990036101274998414, guid: 93bb1c36eb1cdbf4188f1f0bc70f96ce, + type: 3} + m_PrefabInstance: {fileID: 7335324440858839017} + m_PrefabAsset: {fileID: 0} diff --git a/Packages/Floorplan-2.0/DefaultTileset/Prefabs/prefab_arch_bathroom.prefab.meta b/Packages/Floorplan-2.0/DefaultTileset/Prefabs/prefab_arch_bathroom.prefab.meta new file mode 100644 index 00000000..34761581 --- /dev/null +++ b/Packages/Floorplan-2.0/DefaultTileset/Prefabs/prefab_arch_bathroom.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 6aa0301cf6fc3f34c8f9b20f9547c567 +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/Floorplan-2.0/DefaultTileset/Prefabs/prefab_arch_large_1.prefab b/Packages/Floorplan-2.0/DefaultTileset/Prefabs/prefab_arch_large_1.prefab new file mode 100644 index 00000000..2794976a --- /dev/null +++ b/Packages/Floorplan-2.0/DefaultTileset/Prefabs/prefab_arch_large_1.prefab @@ -0,0 +1,175 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &2760337413371881268 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 8733490491783399832} + - component: {fileID: 2439553276690562714} + m_Layer: 0 + m_Name: prefab_arch_large_1 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &8733490491783399832 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2760337413371881268} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 2, y: 1, z: 1} + m_Children: + - {fileID: 7612503256843175031} + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &2439553276690562714 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2760337413371881268} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d933d9bbd3e611d41a488afaa8ac3106, type: 3} + m_Name: + m_EditorClassIdentifier: + tileset: {fileID: 11400000, guid: 04655de02232d0642ad32b971b2e2a91, type: 2} + stuff: [] + tileType: 0 +--- !u!64 &6890266535702397416 +MeshCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6917057036307052132} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 3 + m_Convex: 0 + m_CookingOptions: 14 + m_Mesh: {fileID: -5432252085002834553, guid: cb3740ab608be7c4aa803b547e7fc259, type: 3} +--- !u!1001 &3233513818403237741 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 8733490491783399832} + m_Modifications: + - target: {fileID: -5178661895559278292, guid: cb3740ab608be7c4aa803b547e7fc259, + type: 3} + propertyPath: m_Mesh + value: + objectReference: {fileID: 3936563681746375074, guid: 826fbfbb0ca21c848bf195205513c6dd, + type: 3} + - target: {fileID: -4216859302048453862, guid: cb3740ab608be7c4aa803b547e7fc259, + type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -4216859302048453862, guid: cb3740ab608be7c4aa803b547e7fc259, + type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -4216859302048453862, guid: cb3740ab608be7c4aa803b547e7fc259, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -4216859302048453862, guid: cb3740ab608be7c4aa803b547e7fc259, + type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: -4216859302048453862, guid: cb3740ab608be7c4aa803b547e7fc259, + type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: -4216859302048453862, guid: cb3740ab608be7c4aa803b547e7fc259, + type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: -4216859302048453862, guid: cb3740ab608be7c4aa803b547e7fc259, + type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: -4216859302048453862, guid: cb3740ab608be7c4aa803b547e7fc259, + type: 3} + propertyPath: m_RootOrder + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -4216859302048453862, guid: cb3740ab608be7c4aa803b547e7fc259, + type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -4216859302048453862, guid: cb3740ab608be7c4aa803b547e7fc259, + type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -4216859302048453862, guid: cb3740ab608be7c4aa803b547e7fc259, + type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -4216859302048453862, guid: cb3740ab608be7c4aa803b547e7fc259, + type: 3} + propertyPath: m_LocalScale.x + value: 1 + objectReference: {fileID: 0} + - target: {fileID: -4216859302048453862, guid: cb3740ab608be7c4aa803b547e7fc259, + type: 3} + propertyPath: m_LocalScale.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: -4216859302048453862, guid: cb3740ab608be7c4aa803b547e7fc259, + type: 3} + propertyPath: m_LocalScale.z + value: 1 + objectReference: {fileID: 0} + - target: {fileID: -1504981713932161579, guid: cb3740ab608be7c4aa803b547e7fc259, + type: 3} + propertyPath: m_Materials.Array.data[0] + value: + objectReference: {fileID: 2100000, guid: 4b391561a072cb844bebb805d3052dd1, type: 2} + - target: {fileID: -927199367670048503, guid: cb3740ab608be7c4aa803b547e7fc259, + type: 3} + propertyPath: m_Name + value: mesh_window + objectReference: {fileID: 0} + - target: {fileID: -927199367670048503, guid: cb3740ab608be7c4aa803b547e7fc259, + type: 3} + propertyPath: m_StaticEditorFlags + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: cb3740ab608be7c4aa803b547e7fc259, type: 3} +--- !u!1 &6917057036307052132 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: -927199367670048503, guid: cb3740ab608be7c4aa803b547e7fc259, + type: 3} + m_PrefabInstance: {fileID: 3233513818403237741} + m_PrefabAsset: {fileID: 0} +--- !u!4 &7612503256843175031 stripped +Transform: + m_CorrespondingSourceObject: {fileID: -4216859302048453862, guid: cb3740ab608be7c4aa803b547e7fc259, + type: 3} + m_PrefabInstance: {fileID: 3233513818403237741} + m_PrefabAsset: {fileID: 0} diff --git a/Packages/Floorplan-2.0/DefaultTileset/Prefabs/prefab_arch_large_1.prefab.meta b/Packages/Floorplan-2.0/DefaultTileset/Prefabs/prefab_arch_large_1.prefab.meta new file mode 100644 index 00000000..1e95dd4e --- /dev/null +++ b/Packages/Floorplan-2.0/DefaultTileset/Prefabs/prefab_arch_large_1.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 7779d0ef6488ede469edbd327dca5fe4 +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/Floorplan-2.0/DefaultTileset/Prefabs/prefab_arch_large_2.prefab b/Packages/Floorplan-2.0/DefaultTileset/Prefabs/prefab_arch_large_2.prefab new file mode 100644 index 00000000..49e45fb9 --- /dev/null +++ b/Packages/Floorplan-2.0/DefaultTileset/Prefabs/prefab_arch_large_2.prefab @@ -0,0 +1,170 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &2760337413371881268 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 8733490491783399832} + - component: {fileID: 2439553276690562714} + m_Layer: 0 + m_Name: prefab_arch_large_2 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &8733490491783399832 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2760337413371881268} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 2, y: 1, z: 1} + m_Children: + - {fileID: 7612503256843175031} + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &2439553276690562714 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2760337413371881268} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d933d9bbd3e611d41a488afaa8ac3106, type: 3} + m_Name: + m_EditorClassIdentifier: + tileset: {fileID: 0} + stuff: [] + tileType: 0 +--- !u!64 &6890266535702397416 +MeshCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6917057036307052132} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 3 + m_Convex: 0 + m_CookingOptions: 14 + m_Mesh: {fileID: -5432252085002834553, guid: cb3740ab608be7c4aa803b547e7fc259, type: 3} +--- !u!1001 &3233513818403237741 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 8733490491783399832} + m_Modifications: + - target: {fileID: -5178661895559278292, guid: cb3740ab608be7c4aa803b547e7fc259, + type: 3} + propertyPath: m_Mesh + value: + objectReference: {fileID: 3936563681746375074, guid: ffb966328d8740d44962d1822eeb11c7, + type: 3} + - target: {fileID: -4216859302048453862, guid: cb3740ab608be7c4aa803b547e7fc259, + type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -4216859302048453862, guid: cb3740ab608be7c4aa803b547e7fc259, + type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -4216859302048453862, guid: cb3740ab608be7c4aa803b547e7fc259, + type: 3} + propertyPath: m_LocalPosition.z + value: 2 + objectReference: {fileID: 0} + - target: {fileID: -4216859302048453862, guid: cb3740ab608be7c4aa803b547e7fc259, + type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -4216859302048453862, guid: cb3740ab608be7c4aa803b547e7fc259, + type: 3} + propertyPath: m_LocalRotation.y + value: -1 + objectReference: {fileID: 0} + - target: {fileID: -4216859302048453862, guid: cb3740ab608be7c4aa803b547e7fc259, + type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -4216859302048453862, guid: cb3740ab608be7c4aa803b547e7fc259, + type: 3} + propertyPath: m_LocalRotation.w + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -4216859302048453862, guid: cb3740ab608be7c4aa803b547e7fc259, + type: 3} + propertyPath: m_RootOrder + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -4216859302048453862, guid: cb3740ab608be7c4aa803b547e7fc259, + type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -4216859302048453862, guid: cb3740ab608be7c4aa803b547e7fc259, + type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: -180 + objectReference: {fileID: 0} + - target: {fileID: -4216859302048453862, guid: cb3740ab608be7c4aa803b547e7fc259, + type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -4216859302048453862, guid: cb3740ab608be7c4aa803b547e7fc259, + type: 3} + propertyPath: m_LocalScale.x + value: 1 + objectReference: {fileID: 0} + - target: {fileID: -4216859302048453862, guid: cb3740ab608be7c4aa803b547e7fc259, + type: 3} + propertyPath: m_LocalScale.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: -4216859302048453862, guid: cb3740ab608be7c4aa803b547e7fc259, + type: 3} + propertyPath: m_LocalScale.z + value: 1 + objectReference: {fileID: 0} + - target: {fileID: -927199367670048503, guid: cb3740ab608be7c4aa803b547e7fc259, + type: 3} + propertyPath: m_Name + value: mesh_window + objectReference: {fileID: 0} + - target: {fileID: -927199367670048503, guid: cb3740ab608be7c4aa803b547e7fc259, + type: 3} + propertyPath: m_StaticEditorFlags + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: cb3740ab608be7c4aa803b547e7fc259, type: 3} +--- !u!1 &6917057036307052132 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: -927199367670048503, guid: cb3740ab608be7c4aa803b547e7fc259, + type: 3} + m_PrefabInstance: {fileID: 3233513818403237741} + m_PrefabAsset: {fileID: 0} +--- !u!4 &7612503256843175031 stripped +Transform: + m_CorrespondingSourceObject: {fileID: -4216859302048453862, guid: cb3740ab608be7c4aa803b547e7fc259, + type: 3} + m_PrefabInstance: {fileID: 3233513818403237741} + m_PrefabAsset: {fileID: 0} diff --git a/Packages/Floorplan-2.0/DefaultTileset/Prefabs/prefab_arch_large_2.prefab.meta b/Packages/Floorplan-2.0/DefaultTileset/Prefabs/prefab_arch_large_2.prefab.meta new file mode 100644 index 00000000..a8acbb95 --- /dev/null +++ b/Packages/Floorplan-2.0/DefaultTileset/Prefabs/prefab_arch_large_2.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 97aa43477860ad04fa4d579a5633e9a2 +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/Floorplan-2.0/DefaultTileset/Prefabs/prefab_arch_large_3.prefab b/Packages/Floorplan-2.0/DefaultTileset/Prefabs/prefab_arch_large_3.prefab new file mode 100644 index 00000000..2359c588 --- /dev/null +++ b/Packages/Floorplan-2.0/DefaultTileset/Prefabs/prefab_arch_large_3.prefab @@ -0,0 +1,170 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &2760337413371881268 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 8733490491783399832} + - component: {fileID: 2439553276690562714} + m_Layer: 0 + m_Name: prefab_arch_large_3 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &8733490491783399832 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2760337413371881268} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 2, y: 1, z: 1} + m_Children: + - {fileID: 7612503256843175031} + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &2439553276690562714 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2760337413371881268} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d933d9bbd3e611d41a488afaa8ac3106, type: 3} + m_Name: + m_EditorClassIdentifier: + tileset: {fileID: 0} + stuff: [] + tileType: 0 +--- !u!64 &6890266535702397416 +MeshCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6917057036307052132} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 3 + m_Convex: 0 + m_CookingOptions: 14 + m_Mesh: {fileID: -5432252085002834553, guid: cb3740ab608be7c4aa803b547e7fc259, type: 3} +--- !u!1001 &3233513818403237741 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 8733490491783399832} + m_Modifications: + - target: {fileID: -5178661895559278292, guid: cb3740ab608be7c4aa803b547e7fc259, + type: 3} + propertyPath: m_Mesh + value: + objectReference: {fileID: 6834377688065106569, guid: f73f85382a251584ba9bb903fab009e3, + type: 3} + - target: {fileID: -4216859302048453862, guid: cb3740ab608be7c4aa803b547e7fc259, + type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -4216859302048453862, guid: cb3740ab608be7c4aa803b547e7fc259, + type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -4216859302048453862, guid: cb3740ab608be7c4aa803b547e7fc259, + type: 3} + propertyPath: m_LocalPosition.z + value: 2 + objectReference: {fileID: 0} + - target: {fileID: -4216859302048453862, guid: cb3740ab608be7c4aa803b547e7fc259, + type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: -4216859302048453862, guid: cb3740ab608be7c4aa803b547e7fc259, + type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: -4216859302048453862, guid: cb3740ab608be7c4aa803b547e7fc259, + type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: -4216859302048453862, guid: cb3740ab608be7c4aa803b547e7fc259, + type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: -4216859302048453862, guid: cb3740ab608be7c4aa803b547e7fc259, + type: 3} + propertyPath: m_RootOrder + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -4216859302048453862, guid: cb3740ab608be7c4aa803b547e7fc259, + type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -4216859302048453862, guid: cb3740ab608be7c4aa803b547e7fc259, + type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -4216859302048453862, guid: cb3740ab608be7c4aa803b547e7fc259, + type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -4216859302048453862, guid: cb3740ab608be7c4aa803b547e7fc259, + type: 3} + propertyPath: m_LocalScale.x + value: 1 + objectReference: {fileID: 0} + - target: {fileID: -4216859302048453862, guid: cb3740ab608be7c4aa803b547e7fc259, + type: 3} + propertyPath: m_LocalScale.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: -4216859302048453862, guid: cb3740ab608be7c4aa803b547e7fc259, + type: 3} + propertyPath: m_LocalScale.z + value: 1 + objectReference: {fileID: 0} + - target: {fileID: -927199367670048503, guid: cb3740ab608be7c4aa803b547e7fc259, + type: 3} + propertyPath: m_Name + value: mesh_window + objectReference: {fileID: 0} + - target: {fileID: -927199367670048503, guid: cb3740ab608be7c4aa803b547e7fc259, + type: 3} + propertyPath: m_StaticEditorFlags + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: cb3740ab608be7c4aa803b547e7fc259, type: 3} +--- !u!1 &6917057036307052132 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: -927199367670048503, guid: cb3740ab608be7c4aa803b547e7fc259, + type: 3} + m_PrefabInstance: {fileID: 3233513818403237741} + m_PrefabAsset: {fileID: 0} +--- !u!4 &7612503256843175031 stripped +Transform: + m_CorrespondingSourceObject: {fileID: -4216859302048453862, guid: cb3740ab608be7c4aa803b547e7fc259, + type: 3} + m_PrefabInstance: {fileID: 3233513818403237741} + m_PrefabAsset: {fileID: 0} diff --git a/Packages/Floorplan-2.0/DefaultTileset/Prefabs/prefab_arch_large_3.prefab.meta b/Packages/Floorplan-2.0/DefaultTileset/Prefabs/prefab_arch_large_3.prefab.meta new file mode 100644 index 00000000..f031512d --- /dev/null +++ b/Packages/Floorplan-2.0/DefaultTileset/Prefabs/prefab_arch_large_3.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: a4fd8598690fb414694e3b5f97fd42ac +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/Floorplan-2.0/DefaultTileset/Prefabs/prefab_door.prefab b/Packages/Floorplan-2.0/DefaultTileset/Prefabs/prefab_door.prefab new file mode 100644 index 00000000..145bf859 --- /dev/null +++ b/Packages/Floorplan-2.0/DefaultTileset/Prefabs/prefab_door.prefab @@ -0,0 +1,146 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!65 &1767546389139884529 +BoxCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4855318301534165348} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Size: {x: 0.05903877, y: 2.5, z: 1} + m_Center: {x: 0, y: 1.25, z: 0.5} +--- !u!1 &5984860637780717116 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5353232601430706236} + - component: {fileID: 5076725573814216223} + m_Layer: 0 + m_Name: prefab_door + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &5353232601430706236 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5984860637780717116} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 2, y: 1, z: 1} + m_Children: + - {fileID: 8447301123180817271} + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &5076725573814216223 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5984860637780717116} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d933d9bbd3e611d41a488afaa8ac3106, type: 3} + m_Name: + m_EditorClassIdentifier: + tileset: {fileID: 0} +--- !u!1001 &3476888121074434157 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 5353232601430706236} + m_Modifications: + - target: {fileID: -927199367670048503, guid: 209ba71e1b105f34e9309b2f4a3ff7f1, + type: 3} + propertyPath: m_Name + value: mesh_door + objectReference: {fileID: 0} + - target: {fileID: -927199367670048503, guid: 209ba71e1b105f34e9309b2f4a3ff7f1, + type: 3} + propertyPath: m_StaticEditorFlags + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -4216859302048453862, guid: 209ba71e1b105f34e9309b2f4a3ff7f1, + type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -4216859302048453862, guid: 209ba71e1b105f34e9309b2f4a3ff7f1, + type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -4216859302048453862, guid: 209ba71e1b105f34e9309b2f4a3ff7f1, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -4216859302048453862, guid: 209ba71e1b105f34e9309b2f4a3ff7f1, + type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: -4216859302048453862, guid: 209ba71e1b105f34e9309b2f4a3ff7f1, + type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: -4216859302048453862, guid: 209ba71e1b105f34e9309b2f4a3ff7f1, + type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: -4216859302048453862, guid: 209ba71e1b105f34e9309b2f4a3ff7f1, + type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: -4216859302048453862, guid: 209ba71e1b105f34e9309b2f4a3ff7f1, + type: 3} + propertyPath: m_RootOrder + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -4216859302048453862, guid: 209ba71e1b105f34e9309b2f4a3ff7f1, + type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -4216859302048453862, guid: 209ba71e1b105f34e9309b2f4a3ff7f1, + type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -4216859302048453862, guid: 209ba71e1b105f34e9309b2f4a3ff7f1, + type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 209ba71e1b105f34e9309b2f4a3ff7f1, type: 3} +--- !u!1 &4855318301534165348 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: -927199367670048503, guid: 209ba71e1b105f34e9309b2f4a3ff7f1, + type: 3} + m_PrefabInstance: {fileID: 3476888121074434157} + m_PrefabAsset: {fileID: 0} +--- !u!4 &8447301123180817271 stripped +Transform: + m_CorrespondingSourceObject: {fileID: -4216859302048453862, guid: 209ba71e1b105f34e9309b2f4a3ff7f1, + type: 3} + m_PrefabInstance: {fileID: 3476888121074434157} + m_PrefabAsset: {fileID: 0} diff --git a/Packages/Floorplan-2.0/DefaultTileset/Prefabs/prefab_door.prefab.meta b/Packages/Floorplan-2.0/DefaultTileset/Prefabs/prefab_door.prefab.meta new file mode 100644 index 00000000..8de8b0be --- /dev/null +++ b/Packages/Floorplan-2.0/DefaultTileset/Prefabs/prefab_door.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 052c3656ad7b735449ce8fe88728018b +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/Floorplan-2.0/DefaultTileset/Prefabs/prefab_pillar.prefab b/Packages/Floorplan-2.0/DefaultTileset/Prefabs/prefab_pillar.prefab new file mode 100644 index 00000000..e699ae00 --- /dev/null +++ b/Packages/Floorplan-2.0/DefaultTileset/Prefabs/prefab_pillar.prefab @@ -0,0 +1,146 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!65 &2891966279385482647 +BoxCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3641198024145428031} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Size: {x: 0.5, y: 3, z: 0.5} + m_Center: {x: 0, y: 1.5, z: 0} +--- !u!1 &6653626983322759584 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2861158930047368980} + - component: {fileID: 2615697982135709609} + m_Layer: 0 + m_Name: prefab_pillar + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &2861158930047368980 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6653626983322759584} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 347757486010018860} + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &2615697982135709609 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6653626983322759584} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d933d9bbd3e611d41a488afaa8ac3106, type: 3} + m_Name: + m_EditorClassIdentifier: + tileset: {fileID: 0} +--- !u!1001 &4731540868111370038 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 2861158930047368980} + m_Modifications: + - target: {fileID: -4216859302048453862, guid: cf71fdf079dbc574f992c8fffc463935, + type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -4216859302048453862, guid: cf71fdf079dbc574f992c8fffc463935, + type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -4216859302048453862, guid: cf71fdf079dbc574f992c8fffc463935, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -4216859302048453862, guid: cf71fdf079dbc574f992c8fffc463935, + type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: -4216859302048453862, guid: cf71fdf079dbc574f992c8fffc463935, + type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: -4216859302048453862, guid: cf71fdf079dbc574f992c8fffc463935, + type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: -4216859302048453862, guid: cf71fdf079dbc574f992c8fffc463935, + type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: -4216859302048453862, guid: cf71fdf079dbc574f992c8fffc463935, + type: 3} + propertyPath: m_RootOrder + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -4216859302048453862, guid: cf71fdf079dbc574f992c8fffc463935, + type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -4216859302048453862, guid: cf71fdf079dbc574f992c8fffc463935, + type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -4216859302048453862, guid: cf71fdf079dbc574f992c8fffc463935, + type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -927199367670048503, guid: cf71fdf079dbc574f992c8fffc463935, + type: 3} + propertyPath: m_Name + value: mesh_pillar + objectReference: {fileID: 0} + - target: {fileID: -927199367670048503, guid: cf71fdf079dbc574f992c8fffc463935, + type: 3} + propertyPath: m_StaticEditorFlags + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: cf71fdf079dbc574f992c8fffc463935, type: 3} +--- !u!1 &3641198024145428031 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: -927199367670048503, guid: cf71fdf079dbc574f992c8fffc463935, + type: 3} + m_PrefabInstance: {fileID: 4731540868111370038} + m_PrefabAsset: {fileID: 0} +--- !u!4 &347757486010018860 stripped +Transform: + m_CorrespondingSourceObject: {fileID: -4216859302048453862, guid: cf71fdf079dbc574f992c8fffc463935, + type: 3} + m_PrefabInstance: {fileID: 4731540868111370038} + m_PrefabAsset: {fileID: 0} diff --git a/Packages/Floorplan-2.0/DefaultTileset/Prefabs/prefab_pillar.prefab.meta b/Packages/Floorplan-2.0/DefaultTileset/Prefabs/prefab_pillar.prefab.meta new file mode 100644 index 00000000..38123c85 --- /dev/null +++ b/Packages/Floorplan-2.0/DefaultTileset/Prefabs/prefab_pillar.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: b4e0bf2c4458c7d4781665e683e55262 +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/Floorplan-2.0/DefaultTileset/Prefabs/prefab_tile.prefab b/Packages/Floorplan-2.0/DefaultTileset/Prefabs/prefab_tile.prefab new file mode 100644 index 00000000..a4b21e8d --- /dev/null +++ b/Packages/Floorplan-2.0/DefaultTileset/Prefabs/prefab_tile.prefab @@ -0,0 +1,149 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &254791854324832132 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 6419909412463086537} + - component: {fileID: 385417079247044434} + m_Layer: 0 + m_Name: prefab_tile + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &6419909412463086537 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 254791854324832132} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 8969099547500370696} + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &385417079247044434 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 254791854324832132} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d933d9bbd3e611d41a488afaa8ac3106, type: 3} + m_Name: + m_EditorClassIdentifier: + tileset: {fileID: 0} + stuff: [] + tileType: 0 +--- !u!64 &7524738680035285364 +MeshCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5342392155853203739} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 3 + m_Convex: 0 + m_CookingOptions: 30 + m_Mesh: {fileID: 4600343541166747875, guid: 898bd436bf2d0414982cf1e12cb7c64d, type: 3} +--- !u!1001 &4107863720707354642 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 6419909412463086537} + m_Modifications: + - target: {fileID: -4216859302048453862, guid: 898bd436bf2d0414982cf1e12cb7c64d, + type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -4216859302048453862, guid: 898bd436bf2d0414982cf1e12cb7c64d, + type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -4216859302048453862, guid: 898bd436bf2d0414982cf1e12cb7c64d, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -4216859302048453862, guid: 898bd436bf2d0414982cf1e12cb7c64d, + type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: -4216859302048453862, guid: 898bd436bf2d0414982cf1e12cb7c64d, + type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: -4216859302048453862, guid: 898bd436bf2d0414982cf1e12cb7c64d, + type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: -4216859302048453862, guid: 898bd436bf2d0414982cf1e12cb7c64d, + type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: -4216859302048453862, guid: 898bd436bf2d0414982cf1e12cb7c64d, + type: 3} + propertyPath: m_RootOrder + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -4216859302048453862, guid: 898bd436bf2d0414982cf1e12cb7c64d, + type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -4216859302048453862, guid: 898bd436bf2d0414982cf1e12cb7c64d, + type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -4216859302048453862, guid: 898bd436bf2d0414982cf1e12cb7c64d, + type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -927199367670048503, guid: 898bd436bf2d0414982cf1e12cb7c64d, + type: 3} + propertyPath: m_Name + value: mesh_tile + objectReference: {fileID: 0} + - target: {fileID: -927199367670048503, guid: 898bd436bf2d0414982cf1e12cb7c64d, + type: 3} + propertyPath: m_StaticEditorFlags + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 898bd436bf2d0414982cf1e12cb7c64d, type: 3} +--- !u!1 &5342392155853203739 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: -927199367670048503, guid: 898bd436bf2d0414982cf1e12cb7c64d, + type: 3} + m_PrefabInstance: {fileID: 4107863720707354642} + m_PrefabAsset: {fileID: 0} +--- !u!4 &8969099547500370696 stripped +Transform: + m_CorrespondingSourceObject: {fileID: -4216859302048453862, guid: 898bd436bf2d0414982cf1e12cb7c64d, + type: 3} + m_PrefabInstance: {fileID: 4107863720707354642} + m_PrefabAsset: {fileID: 0} diff --git a/Packages/Floorplan-2.0/DefaultTileset/Prefabs/prefab_tile.prefab.meta b/Packages/Floorplan-2.0/DefaultTileset/Prefabs/prefab_tile.prefab.meta new file mode 100644 index 00000000..aed2618b --- /dev/null +++ b/Packages/Floorplan-2.0/DefaultTileset/Prefabs/prefab_tile.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 381ed00a800c7ae438567827f63d59ab +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/Floorplan-2.0/DefaultTileset/Prefabs/prefab_wall 1.prefab b/Packages/Floorplan-2.0/DefaultTileset/Prefabs/prefab_wall 1.prefab new file mode 100644 index 00000000..889580e2 --- /dev/null +++ b/Packages/Floorplan-2.0/DefaultTileset/Prefabs/prefab_wall 1.prefab @@ -0,0 +1,148 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!65 &6751351014769364873 +BoxCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 217967843286181233} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Size: {x: 25.000004, y: 300, z: 200} + m_Center: {x: 0, y: 150, z: 100} +--- !u!1 &521578371659750298 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3587673770249612148} + - component: {fileID: 3486806618149996730} + m_Layer: 0 + m_Name: prefab_wall + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &3587673770249612148 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 521578371659750298} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 2, y: 1, z: 1} + m_Children: + - {fileID: 3845292611670710114} + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &3486806618149996730 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 521578371659750298} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d933d9bbd3e611d41a488afaa8ac3106, type: 3} + m_Name: + m_EditorClassIdentifier: + tileset: {fileID: 0} + stuff: [] + tileType: 0 +--- !u!1001 &8081583703027399800 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 3587673770249612148} + m_Modifications: + - target: {fileID: -4216859302048453862, guid: 9ba1cf0f4d4975a4d8b5ff5a2acac3db, + type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -4216859302048453862, guid: 9ba1cf0f4d4975a4d8b5ff5a2acac3db, + type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -4216859302048453862, guid: 9ba1cf0f4d4975a4d8b5ff5a2acac3db, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -4216859302048453862, guid: 9ba1cf0f4d4975a4d8b5ff5a2acac3db, + type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: -4216859302048453862, guid: 9ba1cf0f4d4975a4d8b5ff5a2acac3db, + type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: -4216859302048453862, guid: 9ba1cf0f4d4975a4d8b5ff5a2acac3db, + type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: -4216859302048453862, guid: 9ba1cf0f4d4975a4d8b5ff5a2acac3db, + type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: -4216859302048453862, guid: 9ba1cf0f4d4975a4d8b5ff5a2acac3db, + type: 3} + propertyPath: m_RootOrder + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -4216859302048453862, guid: 9ba1cf0f4d4975a4d8b5ff5a2acac3db, + type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -4216859302048453862, guid: 9ba1cf0f4d4975a4d8b5ff5a2acac3db, + type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -4216859302048453862, guid: 9ba1cf0f4d4975a4d8b5ff5a2acac3db, + type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -927199367670048503, guid: 9ba1cf0f4d4975a4d8b5ff5a2acac3db, + type: 3} + propertyPath: m_Name + value: mesh_wall + objectReference: {fileID: 0} + - target: {fileID: -927199367670048503, guid: 9ba1cf0f4d4975a4d8b5ff5a2acac3db, + type: 3} + propertyPath: m_StaticEditorFlags + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 9ba1cf0f4d4975a4d8b5ff5a2acac3db, type: 3} +--- !u!1 &217967843286181233 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: -927199367670048503, guid: 9ba1cf0f4d4975a4d8b5ff5a2acac3db, + type: 3} + m_PrefabInstance: {fileID: 8081583703027399800} + m_PrefabAsset: {fileID: 0} +--- !u!4 &3845292611670710114 stripped +Transform: + m_CorrespondingSourceObject: {fileID: -4216859302048453862, guid: 9ba1cf0f4d4975a4d8b5ff5a2acac3db, + type: 3} + m_PrefabInstance: {fileID: 8081583703027399800} + m_PrefabAsset: {fileID: 0} diff --git a/Packages/Floorplan-2.0/DefaultTileset/Prefabs/prefab_wall 1.prefab.meta b/Packages/Floorplan-2.0/DefaultTileset/Prefabs/prefab_wall 1.prefab.meta new file mode 100644 index 00000000..4a2c6c98 --- /dev/null +++ b/Packages/Floorplan-2.0/DefaultTileset/Prefabs/prefab_wall 1.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 6a1ffa776d6688a44a0f14835e3e53a5 +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/Floorplan-2.0/DefaultTileset/Prefabs/prefab_wall.prefab b/Packages/Floorplan-2.0/DefaultTileset/Prefabs/prefab_wall.prefab new file mode 100644 index 00000000..889580e2 --- /dev/null +++ b/Packages/Floorplan-2.0/DefaultTileset/Prefabs/prefab_wall.prefab @@ -0,0 +1,148 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!65 &6751351014769364873 +BoxCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 217967843286181233} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Size: {x: 25.000004, y: 300, z: 200} + m_Center: {x: 0, y: 150, z: 100} +--- !u!1 &521578371659750298 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3587673770249612148} + - component: {fileID: 3486806618149996730} + m_Layer: 0 + m_Name: prefab_wall + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &3587673770249612148 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 521578371659750298} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 2, y: 1, z: 1} + m_Children: + - {fileID: 3845292611670710114} + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &3486806618149996730 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 521578371659750298} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d933d9bbd3e611d41a488afaa8ac3106, type: 3} + m_Name: + m_EditorClassIdentifier: + tileset: {fileID: 0} + stuff: [] + tileType: 0 +--- !u!1001 &8081583703027399800 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 3587673770249612148} + m_Modifications: + - target: {fileID: -4216859302048453862, guid: 9ba1cf0f4d4975a4d8b5ff5a2acac3db, + type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -4216859302048453862, guid: 9ba1cf0f4d4975a4d8b5ff5a2acac3db, + type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -4216859302048453862, guid: 9ba1cf0f4d4975a4d8b5ff5a2acac3db, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -4216859302048453862, guid: 9ba1cf0f4d4975a4d8b5ff5a2acac3db, + type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: -4216859302048453862, guid: 9ba1cf0f4d4975a4d8b5ff5a2acac3db, + type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: -4216859302048453862, guid: 9ba1cf0f4d4975a4d8b5ff5a2acac3db, + type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: -4216859302048453862, guid: 9ba1cf0f4d4975a4d8b5ff5a2acac3db, + type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: -4216859302048453862, guid: 9ba1cf0f4d4975a4d8b5ff5a2acac3db, + type: 3} + propertyPath: m_RootOrder + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -4216859302048453862, guid: 9ba1cf0f4d4975a4d8b5ff5a2acac3db, + type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -4216859302048453862, guid: 9ba1cf0f4d4975a4d8b5ff5a2acac3db, + type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -4216859302048453862, guid: 9ba1cf0f4d4975a4d8b5ff5a2acac3db, + type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -927199367670048503, guid: 9ba1cf0f4d4975a4d8b5ff5a2acac3db, + type: 3} + propertyPath: m_Name + value: mesh_wall + objectReference: {fileID: 0} + - target: {fileID: -927199367670048503, guid: 9ba1cf0f4d4975a4d8b5ff5a2acac3db, + type: 3} + propertyPath: m_StaticEditorFlags + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 9ba1cf0f4d4975a4d8b5ff5a2acac3db, type: 3} +--- !u!1 &217967843286181233 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: -927199367670048503, guid: 9ba1cf0f4d4975a4d8b5ff5a2acac3db, + type: 3} + m_PrefabInstance: {fileID: 8081583703027399800} + m_PrefabAsset: {fileID: 0} +--- !u!4 &3845292611670710114 stripped +Transform: + m_CorrespondingSourceObject: {fileID: -4216859302048453862, guid: 9ba1cf0f4d4975a4d8b5ff5a2acac3db, + type: 3} + m_PrefabInstance: {fileID: 8081583703027399800} + m_PrefabAsset: {fileID: 0} diff --git a/Packages/Floorplan-2.0/DefaultTileset/Prefabs/prefab_wall.prefab.meta b/Packages/Floorplan-2.0/DefaultTileset/Prefabs/prefab_wall.prefab.meta new file mode 100644 index 00000000..c18c5f34 --- /dev/null +++ b/Packages/Floorplan-2.0/DefaultTileset/Prefabs/prefab_wall.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: b15f933ae2fe0b545a5adfb036e3a417 +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/Floorplan-2.0/DefaultTileset/Prefabs/prefab_wall_bathroom_dirty 1.prefab b/Packages/Floorplan-2.0/DefaultTileset/Prefabs/prefab_wall_bathroom_dirty 1.prefab new file mode 100644 index 00000000..fd6ae6e7 --- /dev/null +++ b/Packages/Floorplan-2.0/DefaultTileset/Prefabs/prefab_wall_bathroom_dirty 1.prefab @@ -0,0 +1,259 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!65 &5351094519685179460 +BoxCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 217967843286181233} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Size: {x: 0.25000003, y: 3, z: 2} + m_Center: {x: 0, y: 1.5, z: 1} +--- !u!1 &521578371659750298 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3587673770249612148} + - component: {fileID: 3486806618149996730} + m_Layer: 0 + m_Name: prefab_wall_bathroom_dirty 1 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &3587673770249612148 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 521578371659750298} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 2, y: 1, z: 1} + m_Children: + - {fileID: 3845292611670710114} + - {fileID: 6407808296419368550} + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &3486806618149996730 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 521578371659750298} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d933d9bbd3e611d41a488afaa8ac3106, type: 3} + m_Name: + m_EditorClassIdentifier: + tileset: {fileID: 0} + stuff: [] + tileType: 0 +--- !u!1 &6867599337235892159 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 6407808296419368550} + - component: {fileID: 4281821951770965004} + - component: {fileID: 4199481779272295661} + - component: {fileID: 8486171870541962682} + m_Layer: 0 + m_Name: Plane + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &6407808296419368550 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6867599337235892159} + m_LocalRotation: {x: 0.50000006, y: 0.49999854, z: -0.49999997, w: 0.50000155} + m_LocalPosition: {x: 0.126, y: 2.736, z: 1} + m_LocalScale: {x: 0.2, y: 1, z: 0.052796848} + m_Children: [] + m_Father: {fileID: 3587673770249612148} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 90.00001, y: 0, z: -90.00001} +--- !u!33 &4281821951770965004 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6867599337235892159} + m_Mesh: {fileID: 10209, guid: 0000000000000000e000000000000000, type: 0} +--- !u!23 &4199481779272295661 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6867599337235892159} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 8bee7d0fa9988e34d868479eb738ec03, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 +--- !u!64 &8486171870541962682 +MeshCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6867599337235892159} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 3 + m_Convex: 0 + m_CookingOptions: 30 + m_Mesh: {fileID: 10209, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1001 &8081583703027399800 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 3587673770249612148} + m_Modifications: + - target: {fileID: -5178661895559278292, guid: 9ba1cf0f4d4975a4d8b5ff5a2acac3db, + type: 3} + propertyPath: m_Mesh + value: + objectReference: {fileID: 4659351426907646141, guid: 47773f6fc5c8fab41a97c011c60f7294, + type: 3} + - target: {fileID: -4216859302048453862, guid: 9ba1cf0f4d4975a4d8b5ff5a2acac3db, + type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -4216859302048453862, guid: 9ba1cf0f4d4975a4d8b5ff5a2acac3db, + type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -4216859302048453862, guid: 9ba1cf0f4d4975a4d8b5ff5a2acac3db, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -4216859302048453862, guid: 9ba1cf0f4d4975a4d8b5ff5a2acac3db, + type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: -4216859302048453862, guid: 9ba1cf0f4d4975a4d8b5ff5a2acac3db, + type: 3} + propertyPath: m_LocalRotation.y + value: 0.000000014901161 + objectReference: {fileID: 0} + - target: {fileID: -4216859302048453862, guid: 9ba1cf0f4d4975a4d8b5ff5a2acac3db, + type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: -4216859302048453862, guid: 9ba1cf0f4d4975a4d8b5ff5a2acac3db, + type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: -4216859302048453862, guid: 9ba1cf0f4d4975a4d8b5ff5a2acac3db, + type: 3} + propertyPath: m_RootOrder + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -4216859302048453862, guid: 9ba1cf0f4d4975a4d8b5ff5a2acac3db, + type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -4216859302048453862, guid: 9ba1cf0f4d4975a4d8b5ff5a2acac3db, + type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -4216859302048453862, guid: 9ba1cf0f4d4975a4d8b5ff5a2acac3db, + type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -1504981713932161579, guid: 9ba1cf0f4d4975a4d8b5ff5a2acac3db, + type: 3} + propertyPath: m_Materials.Array.size + value: 2 + objectReference: {fileID: 0} + - target: {fileID: -1504981713932161579, guid: 9ba1cf0f4d4975a4d8b5ff5a2acac3db, + type: 3} + propertyPath: m_Materials.Array.data[1] + value: + objectReference: {fileID: 2100000, guid: a5a4f06840a9e084dbaeedd7404be8e2, type: 2} + - target: {fileID: -927199367670048503, guid: 9ba1cf0f4d4975a4d8b5ff5a2acac3db, + type: 3} + propertyPath: m_Name + value: mesh_wall_bathroom + objectReference: {fileID: 0} + - target: {fileID: -927199367670048503, guid: 9ba1cf0f4d4975a4d8b5ff5a2acac3db, + type: 3} + propertyPath: m_StaticEditorFlags + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 9ba1cf0f4d4975a4d8b5ff5a2acac3db, type: 3} +--- !u!1 &217967843286181233 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: -927199367670048503, guid: 9ba1cf0f4d4975a4d8b5ff5a2acac3db, + type: 3} + m_PrefabInstance: {fileID: 8081583703027399800} + m_PrefabAsset: {fileID: 0} +--- !u!4 &3845292611670710114 stripped +Transform: + m_CorrespondingSourceObject: {fileID: -4216859302048453862, guid: 9ba1cf0f4d4975a4d8b5ff5a2acac3db, + type: 3} + m_PrefabInstance: {fileID: 8081583703027399800} + m_PrefabAsset: {fileID: 0} diff --git a/Packages/Floorplan-2.0/DefaultTileset/Prefabs/prefab_wall_bathroom_dirty 1.prefab.meta b/Packages/Floorplan-2.0/DefaultTileset/Prefabs/prefab_wall_bathroom_dirty 1.prefab.meta new file mode 100644 index 00000000..06245e13 --- /dev/null +++ b/Packages/Floorplan-2.0/DefaultTileset/Prefabs/prefab_wall_bathroom_dirty 1.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 48f9a004f13996242846f8a5989d3a98 +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/Floorplan-2.0/DefaultTileset/Prefabs/prefab_wall_bathroom_dirty 2.prefab b/Packages/Floorplan-2.0/DefaultTileset/Prefabs/prefab_wall_bathroom_dirty 2.prefab new file mode 100644 index 00000000..7b0b83ce --- /dev/null +++ b/Packages/Floorplan-2.0/DefaultTileset/Prefabs/prefab_wall_bathroom_dirty 2.prefab @@ -0,0 +1,259 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!65 &5351094519685179460 +BoxCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 217967843286181233} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Size: {x: 0.25000003, y: 3, z: 2} + m_Center: {x: 0, y: 1.5, z: 1} +--- !u!1 &521578371659750298 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3587673770249612148} + - component: {fileID: 3486806618149996730} + m_Layer: 0 + m_Name: prefab_wall_bathroom_dirty 2 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &3587673770249612148 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 521578371659750298} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 2, y: 1, z: 1} + m_Children: + - {fileID: 3845292611670710114} + - {fileID: 6407808296419368550} + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &3486806618149996730 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 521578371659750298} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d933d9bbd3e611d41a488afaa8ac3106, type: 3} + m_Name: + m_EditorClassIdentifier: + tileset: {fileID: 0} + stuff: [] + tileType: 0 +--- !u!1 &6867599337235892159 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 6407808296419368550} + - component: {fileID: 4281821951770965004} + - component: {fileID: 4199481779272295661} + - component: {fileID: 8486171870541962682} + m_Layer: 0 + m_Name: Plane + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &6407808296419368550 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6867599337235892159} + m_LocalRotation: {x: 0.50000006, y: 0.49999854, z: -0.49999997, w: 0.50000155} + m_LocalPosition: {x: 0.126, y: 1.9846, z: 1} + m_LocalScale: {x: 0.2, y: 1, z: 0.20308849} + m_Children: [] + m_Father: {fileID: 3587673770249612148} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 90.00001, y: 0, z: -90.00001} +--- !u!33 &4281821951770965004 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6867599337235892159} + m_Mesh: {fileID: 10209, guid: 0000000000000000e000000000000000, type: 0} +--- !u!23 &4199481779272295661 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6867599337235892159} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 8bee7d0fa9988e34d868479eb738ec03, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 +--- !u!64 &8486171870541962682 +MeshCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6867599337235892159} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 3 + m_Convex: 0 + m_CookingOptions: 30 + m_Mesh: {fileID: 10209, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1001 &8081583703027399800 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 3587673770249612148} + m_Modifications: + - target: {fileID: -5178661895559278292, guid: 9ba1cf0f4d4975a4d8b5ff5a2acac3db, + type: 3} + propertyPath: m_Mesh + value: + objectReference: {fileID: 4659351426907646141, guid: 47773f6fc5c8fab41a97c011c60f7294, + type: 3} + - target: {fileID: -4216859302048453862, guid: 9ba1cf0f4d4975a4d8b5ff5a2acac3db, + type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -4216859302048453862, guid: 9ba1cf0f4d4975a4d8b5ff5a2acac3db, + type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -4216859302048453862, guid: 9ba1cf0f4d4975a4d8b5ff5a2acac3db, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -4216859302048453862, guid: 9ba1cf0f4d4975a4d8b5ff5a2acac3db, + type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: -4216859302048453862, guid: 9ba1cf0f4d4975a4d8b5ff5a2acac3db, + type: 3} + propertyPath: m_LocalRotation.y + value: 0.000000014901161 + objectReference: {fileID: 0} + - target: {fileID: -4216859302048453862, guid: 9ba1cf0f4d4975a4d8b5ff5a2acac3db, + type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: -4216859302048453862, guid: 9ba1cf0f4d4975a4d8b5ff5a2acac3db, + type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: -4216859302048453862, guid: 9ba1cf0f4d4975a4d8b5ff5a2acac3db, + type: 3} + propertyPath: m_RootOrder + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -4216859302048453862, guid: 9ba1cf0f4d4975a4d8b5ff5a2acac3db, + type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -4216859302048453862, guid: 9ba1cf0f4d4975a4d8b5ff5a2acac3db, + type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -4216859302048453862, guid: 9ba1cf0f4d4975a4d8b5ff5a2acac3db, + type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -1504981713932161579, guid: 9ba1cf0f4d4975a4d8b5ff5a2acac3db, + type: 3} + propertyPath: m_Materials.Array.size + value: 2 + objectReference: {fileID: 0} + - target: {fileID: -1504981713932161579, guid: 9ba1cf0f4d4975a4d8b5ff5a2acac3db, + type: 3} + propertyPath: m_Materials.Array.data[1] + value: + objectReference: {fileID: 2100000, guid: a5a4f06840a9e084dbaeedd7404be8e2, type: 2} + - target: {fileID: -927199367670048503, guid: 9ba1cf0f4d4975a4d8b5ff5a2acac3db, + type: 3} + propertyPath: m_Name + value: mesh_wall_bathroom + objectReference: {fileID: 0} + - target: {fileID: -927199367670048503, guid: 9ba1cf0f4d4975a4d8b5ff5a2acac3db, + type: 3} + propertyPath: m_StaticEditorFlags + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 9ba1cf0f4d4975a4d8b5ff5a2acac3db, type: 3} +--- !u!1 &217967843286181233 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: -927199367670048503, guid: 9ba1cf0f4d4975a4d8b5ff5a2acac3db, + type: 3} + m_PrefabInstance: {fileID: 8081583703027399800} + m_PrefabAsset: {fileID: 0} +--- !u!4 &3845292611670710114 stripped +Transform: + m_CorrespondingSourceObject: {fileID: -4216859302048453862, guid: 9ba1cf0f4d4975a4d8b5ff5a2acac3db, + type: 3} + m_PrefabInstance: {fileID: 8081583703027399800} + m_PrefabAsset: {fileID: 0} diff --git a/Packages/Floorplan-2.0/DefaultTileset/Prefabs/prefab_wall_bathroom_dirty 2.prefab.meta b/Packages/Floorplan-2.0/DefaultTileset/Prefabs/prefab_wall_bathroom_dirty 2.prefab.meta new file mode 100644 index 00000000..6e9dcb36 --- /dev/null +++ b/Packages/Floorplan-2.0/DefaultTileset/Prefabs/prefab_wall_bathroom_dirty 2.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 842c193116fb587429cad010c2d09e8f +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/Floorplan-2.0/DefaultTileset/Prefabs/prefab_wall_bathroom_dirty 3.prefab b/Packages/Floorplan-2.0/DefaultTileset/Prefabs/prefab_wall_bathroom_dirty 3.prefab new file mode 100644 index 00000000..8b0e2357 --- /dev/null +++ b/Packages/Floorplan-2.0/DefaultTileset/Prefabs/prefab_wall_bathroom_dirty 3.prefab @@ -0,0 +1,354 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!65 &5351094519685179460 +BoxCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 217967843286181233} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Size: {x: 0.25000003, y: 3, z: 2} + m_Center: {x: 0, y: 1.5, z: 1} +--- !u!1 &521578371659750298 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3587673770249612148} + - component: {fileID: 3486806618149996730} + m_Layer: 0 + m_Name: prefab_wall_bathroom_dirty 3 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &3587673770249612148 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 521578371659750298} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 2, y: 1, z: 1} + m_Children: + - {fileID: 3845292611670710114} + - {fileID: 6407808296419368550} + - {fileID: 4652520709083033171} + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &3486806618149996730 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 521578371659750298} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d933d9bbd3e611d41a488afaa8ac3106, type: 3} + m_Name: + m_EditorClassIdentifier: + tileset: {fileID: 0} + stuff: [] + tileType: 0 +--- !u!1 &5434998004693352031 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 4652520709083033171} + - component: {fileID: 7144258998054821193} + - component: {fileID: 4232380354542724848} + - component: {fileID: 7871002690204056453} + m_Layer: 0 + m_Name: Plane (1) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &4652520709083033171 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5434998004693352031} + m_LocalRotation: {x: -0.49999744, y: -0.49999598, z: 0.50000244, w: -0.50000423} + m_LocalPosition: {x: 0.162, y: 0.5961, z: 1} + m_LocalScale: {x: 0.2, y: 1, z: 0.1198248} + m_Children: [] + m_Father: {fileID: 3587673770249612148} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 450, y: 0, z: -90.00001} +--- !u!33 &7144258998054821193 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5434998004693352031} + m_Mesh: {fileID: 10209, guid: 0000000000000000e000000000000000, type: 0} +--- !u!23 &4232380354542724848 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5434998004693352031} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 8bee7d0fa9988e34d868479eb738ec03, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 +--- !u!64 &7871002690204056453 +MeshCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5434998004693352031} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 3 + m_Convex: 0 + m_CookingOptions: 30 + m_Mesh: {fileID: 10209, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &6867599337235892159 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 6407808296419368550} + - component: {fileID: 4281821951770965004} + - component: {fileID: 4199481779272295661} + - component: {fileID: 8486171870541962682} + m_Layer: 0 + m_Name: Plane + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &6407808296419368550 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6867599337235892159} + m_LocalRotation: {x: 0.50000304, y: 0.50000143, z: 0.4999971, w: -0.49999854} + m_LocalPosition: {x: 0.126, y: 1.5825, z: 1} + m_LocalScale: {x: 0.2, y: 1, z: 0.0796772} + m_Children: [] + m_Father: {fileID: 3587673770249612148} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 270, y: 0, z: -90.00001} +--- !u!33 &4281821951770965004 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6867599337235892159} + m_Mesh: {fileID: 10209, guid: 0000000000000000e000000000000000, type: 0} +--- !u!23 &4199481779272295661 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6867599337235892159} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 3d9dda0674f093f4daf6ad60c28ea5e6, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 +--- !u!64 &8486171870541962682 +MeshCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6867599337235892159} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 3 + m_Convex: 0 + m_CookingOptions: 30 + m_Mesh: {fileID: 10209, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1001 &8081583703027399800 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 3587673770249612148} + m_Modifications: + - target: {fileID: -5178661895559278292, guid: 9ba1cf0f4d4975a4d8b5ff5a2acac3db, + type: 3} + propertyPath: m_Mesh + value: + objectReference: {fileID: 4659351426907646141, guid: 47773f6fc5c8fab41a97c011c60f7294, + type: 3} + - target: {fileID: -4216859302048453862, guid: 9ba1cf0f4d4975a4d8b5ff5a2acac3db, + type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -4216859302048453862, guid: 9ba1cf0f4d4975a4d8b5ff5a2acac3db, + type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -4216859302048453862, guid: 9ba1cf0f4d4975a4d8b5ff5a2acac3db, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -4216859302048453862, guid: 9ba1cf0f4d4975a4d8b5ff5a2acac3db, + type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: -4216859302048453862, guid: 9ba1cf0f4d4975a4d8b5ff5a2acac3db, + type: 3} + propertyPath: m_LocalRotation.y + value: 0.000000014901161 + objectReference: {fileID: 0} + - target: {fileID: -4216859302048453862, guid: 9ba1cf0f4d4975a4d8b5ff5a2acac3db, + type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: -4216859302048453862, guid: 9ba1cf0f4d4975a4d8b5ff5a2acac3db, + type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: -4216859302048453862, guid: 9ba1cf0f4d4975a4d8b5ff5a2acac3db, + type: 3} + propertyPath: m_RootOrder + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -4216859302048453862, guid: 9ba1cf0f4d4975a4d8b5ff5a2acac3db, + type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -4216859302048453862, guid: 9ba1cf0f4d4975a4d8b5ff5a2acac3db, + type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -4216859302048453862, guid: 9ba1cf0f4d4975a4d8b5ff5a2acac3db, + type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -1504981713932161579, guid: 9ba1cf0f4d4975a4d8b5ff5a2acac3db, + type: 3} + propertyPath: m_Materials.Array.size + value: 2 + objectReference: {fileID: 0} + - target: {fileID: -1504981713932161579, guid: 9ba1cf0f4d4975a4d8b5ff5a2acac3db, + type: 3} + propertyPath: m_Materials.Array.data[1] + value: + objectReference: {fileID: 2100000, guid: a5a4f06840a9e084dbaeedd7404be8e2, type: 2} + - target: {fileID: -927199367670048503, guid: 9ba1cf0f4d4975a4d8b5ff5a2acac3db, + type: 3} + propertyPath: m_Name + value: mesh_wall_bathroom + objectReference: {fileID: 0} + - target: {fileID: -927199367670048503, guid: 9ba1cf0f4d4975a4d8b5ff5a2acac3db, + type: 3} + propertyPath: m_StaticEditorFlags + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 9ba1cf0f4d4975a4d8b5ff5a2acac3db, type: 3} +--- !u!1 &217967843286181233 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: -927199367670048503, guid: 9ba1cf0f4d4975a4d8b5ff5a2acac3db, + type: 3} + m_PrefabInstance: {fileID: 8081583703027399800} + m_PrefabAsset: {fileID: 0} +--- !u!4 &3845292611670710114 stripped +Transform: + m_CorrespondingSourceObject: {fileID: -4216859302048453862, guid: 9ba1cf0f4d4975a4d8b5ff5a2acac3db, + type: 3} + m_PrefabInstance: {fileID: 8081583703027399800} + m_PrefabAsset: {fileID: 0} diff --git a/Packages/Floorplan-2.0/DefaultTileset/Prefabs/prefab_wall_bathroom_dirty 3.prefab.meta b/Packages/Floorplan-2.0/DefaultTileset/Prefabs/prefab_wall_bathroom_dirty 3.prefab.meta new file mode 100644 index 00000000..a75a657a --- /dev/null +++ b/Packages/Floorplan-2.0/DefaultTileset/Prefabs/prefab_wall_bathroom_dirty 3.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: f10f378709028f44dae833efc1cc7289 +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/Floorplan-2.0/DefaultTileset/Prefabs/prefab_wall_bathroom_dirty 4.prefab b/Packages/Floorplan-2.0/DefaultTileset/Prefabs/prefab_wall_bathroom_dirty 4.prefab new file mode 100644 index 00000000..5adb56b3 --- /dev/null +++ b/Packages/Floorplan-2.0/DefaultTileset/Prefabs/prefab_wall_bathroom_dirty 4.prefab @@ -0,0 +1,544 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!65 &5351094519685179460 +BoxCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 217967843286181233} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Size: {x: 0.25000003, y: 3, z: 2} + m_Center: {x: 0, y: 1.5, z: 1} +--- !u!1 &521578371659750298 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3587673770249612148} + - component: {fileID: 3486806618149996730} + m_Layer: 0 + m_Name: prefab_wall_bathroom_dirty 4 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &3587673770249612148 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 521578371659750298} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 2, y: 1, z: 1} + m_Children: + - {fileID: 3845292611670710114} + - {fileID: 6407808296419368550} + - {fileID: 6949801461961729923} + - {fileID: 1942939945983284766} + - {fileID: 2449283475189077122} + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &3486806618149996730 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 521578371659750298} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d933d9bbd3e611d41a488afaa8ac3106, type: 3} + m_Name: + m_EditorClassIdentifier: + tileset: {fileID: 0} + stuff: [] + tileType: 0 +--- !u!1 &1220880299418437393 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 6949801461961729923} + - component: {fileID: 4382982538547560609} + - component: {fileID: 7486428569494062174} + - component: {fileID: 2749675483952121892} + m_Layer: 0 + m_Name: Plane (1) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &6949801461961729923 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1220880299418437393} + m_LocalRotation: {x: 0.50000006, y: 0.49999854, z: -0.49999997, w: 0.50000155} + m_LocalPosition: {x: 0.126, y: 2.3366, z: 0.5457} + m_LocalScale: {x: 0.10913814, y: 0.45592, z: 0.13266687} + m_Children: [] + m_Father: {fileID: 3587673770249612148} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 90.00001, y: 0, z: -90.00001} +--- !u!33 &4382982538547560609 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1220880299418437393} + m_Mesh: {fileID: 10209, guid: 0000000000000000e000000000000000, type: 0} +--- !u!23 &7486428569494062174 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1220880299418437393} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 8bee7d0fa9988e34d868479eb738ec03, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 +--- !u!64 &2749675483952121892 +MeshCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1220880299418437393} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 3 + m_Convex: 0 + m_CookingOptions: 30 + m_Mesh: {fileID: 10209, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &6867599337235892159 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 6407808296419368550} + - component: {fileID: 4281821951770965004} + - component: {fileID: 4199481779272295661} + - component: {fileID: 8486171870541962682} + m_Layer: 0 + m_Name: Plane + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &6407808296419368550 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6867599337235892159} + m_LocalRotation: {x: 0.50000006, y: 0.49999854, z: -0.49999997, w: 0.50000155} + m_LocalPosition: {x: 0.1256, y: 2.6208, z: 1.5441} + m_LocalScale: {x: 0.091184005, y: 0.45592, z: 0.07583131} + m_Children: [] + m_Father: {fileID: 3587673770249612148} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 90.00001, y: 0, z: -90.00001} +--- !u!33 &4281821951770965004 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6867599337235892159} + m_Mesh: {fileID: 10209, guid: 0000000000000000e000000000000000, type: 0} +--- !u!23 &4199481779272295661 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6867599337235892159} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 6f027001e7f7d0b43b743ce0f2f8b21d, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 +--- !u!64 &8486171870541962682 +MeshCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6867599337235892159} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 3 + m_Convex: 0 + m_CookingOptions: 30 + m_Mesh: {fileID: 10209, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &8061170226675105030 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2449283475189077122} + - component: {fileID: 1375023287411579788} + - component: {fileID: 4714405758947927716} + - component: {fileID: 8505049397625763563} + m_Layer: 0 + m_Name: Plane (3) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &2449283475189077122 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8061170226675105030} + m_LocalRotation: {x: 0.50000304, y: 0.50000143, z: 0.4999971, w: -0.49999854} + m_LocalPosition: {x: 0.163, y: 0.5832, z: 1.0008} + m_LocalScale: {x: 0.19983193, y: 0.45592, z: 0.11664071} + m_Children: [] + m_Father: {fileID: 3587673770249612148} + m_RootOrder: 4 + m_LocalEulerAnglesHint: {x: 270, y: 0, z: -90.00001} +--- !u!33 &1375023287411579788 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8061170226675105030} + m_Mesh: {fileID: 10209, guid: 0000000000000000e000000000000000, type: 0} +--- !u!23 &4714405758947927716 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8061170226675105030} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 6f027001e7f7d0b43b743ce0f2f8b21d, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 +--- !u!64 &8505049397625763563 +MeshCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8061170226675105030} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 3 + m_Convex: 0 + m_CookingOptions: 30 + m_Mesh: {fileID: 10209, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &8377412382933895933 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1942939945983284766} + - component: {fileID: 6053919130618434304} + - component: {fileID: 6917904501546770309} + - component: {fileID: 2177159939040296888} + m_Layer: 0 + m_Name: Plane (2) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1942939945983284766 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8377412382933895933} + m_LocalRotation: {x: 0.50000304, y: 0.50000143, z: 0.4999971, w: -0.49999854} + m_LocalPosition: {x: 0.163, y: 0.4255, z: 1.0008} + m_LocalScale: {x: 0.19983193, y: 0.45592, z: 0.08509253} + m_Children: [] + m_Father: {fileID: 3587673770249612148} + m_RootOrder: 3 + m_LocalEulerAnglesHint: {x: 270, y: 0, z: -90.00001} +--- !u!33 &6053919130618434304 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8377412382933895933} + m_Mesh: {fileID: 10209, guid: 0000000000000000e000000000000000, type: 0} +--- !u!23 &6917904501546770309 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8377412382933895933} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 8bee7d0fa9988e34d868479eb738ec03, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 +--- !u!64 &2177159939040296888 +MeshCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8377412382933895933} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 3 + m_Convex: 0 + m_CookingOptions: 30 + m_Mesh: {fileID: 10209, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1001 &8081583703027399800 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 3587673770249612148} + m_Modifications: + - target: {fileID: -5178661895559278292, guid: 9ba1cf0f4d4975a4d8b5ff5a2acac3db, + type: 3} + propertyPath: m_Mesh + value: + objectReference: {fileID: 4659351426907646141, guid: 47773f6fc5c8fab41a97c011c60f7294, + type: 3} + - target: {fileID: -4216859302048453862, guid: 9ba1cf0f4d4975a4d8b5ff5a2acac3db, + type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -4216859302048453862, guid: 9ba1cf0f4d4975a4d8b5ff5a2acac3db, + type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -4216859302048453862, guid: 9ba1cf0f4d4975a4d8b5ff5a2acac3db, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -4216859302048453862, guid: 9ba1cf0f4d4975a4d8b5ff5a2acac3db, + type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: -4216859302048453862, guid: 9ba1cf0f4d4975a4d8b5ff5a2acac3db, + type: 3} + propertyPath: m_LocalRotation.y + value: 0.000000014901161 + objectReference: {fileID: 0} + - target: {fileID: -4216859302048453862, guid: 9ba1cf0f4d4975a4d8b5ff5a2acac3db, + type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: -4216859302048453862, guid: 9ba1cf0f4d4975a4d8b5ff5a2acac3db, + type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: -4216859302048453862, guid: 9ba1cf0f4d4975a4d8b5ff5a2acac3db, + type: 3} + propertyPath: m_RootOrder + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -4216859302048453862, guid: 9ba1cf0f4d4975a4d8b5ff5a2acac3db, + type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -4216859302048453862, guid: 9ba1cf0f4d4975a4d8b5ff5a2acac3db, + type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -4216859302048453862, guid: 9ba1cf0f4d4975a4d8b5ff5a2acac3db, + type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -1504981713932161579, guid: 9ba1cf0f4d4975a4d8b5ff5a2acac3db, + type: 3} + propertyPath: m_Materials.Array.size + value: 2 + objectReference: {fileID: 0} + - target: {fileID: -1504981713932161579, guid: 9ba1cf0f4d4975a4d8b5ff5a2acac3db, + type: 3} + propertyPath: m_Materials.Array.data[1] + value: + objectReference: {fileID: 2100000, guid: a5a4f06840a9e084dbaeedd7404be8e2, type: 2} + - target: {fileID: -927199367670048503, guid: 9ba1cf0f4d4975a4d8b5ff5a2acac3db, + type: 3} + propertyPath: m_Name + value: mesh_wall_bathroom + objectReference: {fileID: 0} + - target: {fileID: -927199367670048503, guid: 9ba1cf0f4d4975a4d8b5ff5a2acac3db, + type: 3} + propertyPath: m_StaticEditorFlags + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 9ba1cf0f4d4975a4d8b5ff5a2acac3db, type: 3} +--- !u!1 &217967843286181233 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: -927199367670048503, guid: 9ba1cf0f4d4975a4d8b5ff5a2acac3db, + type: 3} + m_PrefabInstance: {fileID: 8081583703027399800} + m_PrefabAsset: {fileID: 0} +--- !u!4 &3845292611670710114 stripped +Transform: + m_CorrespondingSourceObject: {fileID: -4216859302048453862, guid: 9ba1cf0f4d4975a4d8b5ff5a2acac3db, + type: 3} + m_PrefabInstance: {fileID: 8081583703027399800} + m_PrefabAsset: {fileID: 0} diff --git a/Packages/Floorplan-2.0/DefaultTileset/Prefabs/prefab_wall_bathroom_dirty 4.prefab.meta b/Packages/Floorplan-2.0/DefaultTileset/Prefabs/prefab_wall_bathroom_dirty 4.prefab.meta new file mode 100644 index 00000000..1f3bf260 --- /dev/null +++ b/Packages/Floorplan-2.0/DefaultTileset/Prefabs/prefab_wall_bathroom_dirty 4.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 4f27ddea839e7eb498d34e23bd316a5f +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/Floorplan-2.0/DefaultTileset/Prefabs/prefab_window.prefab b/Packages/Floorplan-2.0/DefaultTileset/Prefabs/prefab_window.prefab new file mode 100644 index 00000000..a398476a --- /dev/null +++ b/Packages/Floorplan-2.0/DefaultTileset/Prefabs/prefab_window.prefab @@ -0,0 +1,147 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &2760337413371881268 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 8733490491783399832} + - component: {fileID: 2439553276690562714} + m_Layer: 0 + m_Name: prefab_window + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &8733490491783399832 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2760337413371881268} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 2, y: 1, z: 1} + m_Children: + - {fileID: 7612503256843175031} + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &2439553276690562714 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2760337413371881268} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d933d9bbd3e611d41a488afaa8ac3106, type: 3} + m_Name: + m_EditorClassIdentifier: + tileset: {fileID: 0} +--- !u!64 &6890266535702397416 +MeshCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6917057036307052132} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 3 + m_Convex: 0 + m_CookingOptions: 14 + m_Mesh: {fileID: -5432252085002834553, guid: cb3740ab608be7c4aa803b547e7fc259, type: 3} +--- !u!1001 &3233513818403237741 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 8733490491783399832} + m_Modifications: + - target: {fileID: -4216859302048453862, guid: cb3740ab608be7c4aa803b547e7fc259, + type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -4216859302048453862, guid: cb3740ab608be7c4aa803b547e7fc259, + type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -4216859302048453862, guid: cb3740ab608be7c4aa803b547e7fc259, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -4216859302048453862, guid: cb3740ab608be7c4aa803b547e7fc259, + type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: -4216859302048453862, guid: cb3740ab608be7c4aa803b547e7fc259, + type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: -4216859302048453862, guid: cb3740ab608be7c4aa803b547e7fc259, + type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: -4216859302048453862, guid: cb3740ab608be7c4aa803b547e7fc259, + type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: -4216859302048453862, guid: cb3740ab608be7c4aa803b547e7fc259, + type: 3} + propertyPath: m_RootOrder + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -4216859302048453862, guid: cb3740ab608be7c4aa803b547e7fc259, + type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -4216859302048453862, guid: cb3740ab608be7c4aa803b547e7fc259, + type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -4216859302048453862, guid: cb3740ab608be7c4aa803b547e7fc259, + type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -927199367670048503, guid: cb3740ab608be7c4aa803b547e7fc259, + type: 3} + propertyPath: m_Name + value: mesh_window + objectReference: {fileID: 0} + - target: {fileID: -927199367670048503, guid: cb3740ab608be7c4aa803b547e7fc259, + type: 3} + propertyPath: m_StaticEditorFlags + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: cb3740ab608be7c4aa803b547e7fc259, type: 3} +--- !u!1 &6917057036307052132 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: -927199367670048503, guid: cb3740ab608be7c4aa803b547e7fc259, + type: 3} + m_PrefabInstance: {fileID: 3233513818403237741} + m_PrefabAsset: {fileID: 0} +--- !u!4 &7612503256843175031 stripped +Transform: + m_CorrespondingSourceObject: {fileID: -4216859302048453862, guid: cb3740ab608be7c4aa803b547e7fc259, + type: 3} + m_PrefabInstance: {fileID: 3233513818403237741} + m_PrefabAsset: {fileID: 0} diff --git a/Packages/Floorplan-2.0/DefaultTileset/Prefabs/prefab_window.prefab.meta b/Packages/Floorplan-2.0/DefaultTileset/Prefabs/prefab_window.prefab.meta new file mode 100644 index 00000000..933c4792 --- /dev/null +++ b/Packages/Floorplan-2.0/DefaultTileset/Prefabs/prefab_window.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 2a4fccde007ea954484dfa6e6e7a6a70 +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/Floorplan-2.0/DefaultTileset/Prefabs/prefab_window_large_1.prefab b/Packages/Floorplan-2.0/DefaultTileset/Prefabs/prefab_window_large_1.prefab new file mode 100644 index 00000000..192bc9cc --- /dev/null +++ b/Packages/Floorplan-2.0/DefaultTileset/Prefabs/prefab_window_large_1.prefab @@ -0,0 +1,269 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &2760337413371881268 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 8733490491783399832} + - component: {fileID: 2439553276690562714} + m_Layer: 0 + m_Name: prefab_window_large_1 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &8733490491783399832 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2760337413371881268} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 2, y: 1, z: 1} + m_Children: + - {fileID: 7612503256843175031} + - {fileID: 1889272175116038668} + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &2439553276690562714 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2760337413371881268} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d933d9bbd3e611d41a488afaa8ac3106, type: 3} + m_Name: + m_EditorClassIdentifier: + tileset: {fileID: 11400000, guid: 04655de02232d0642ad32b971b2e2a91, type: 2} + stuff: [] + tileType: 0 +--- !u!64 &6890266535702397416 +MeshCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6917057036307052132} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 3 + m_Convex: 0 + m_CookingOptions: 14 + m_Mesh: {fileID: -5432252085002834553, guid: cb3740ab608be7c4aa803b547e7fc259, type: 3} +--- !u!1 &7333764339015059950 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1889272175116038668} + - component: {fileID: 4816955229005452814} + - component: {fileID: 3598006903418693204} + - component: {fileID: 4172356839361258916} + m_Layer: 0 + m_Name: Cube + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1889272175116038668 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7333764339015059950} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 1.87, z: 0.0673} + m_LocalScale: {x: 0.0445347, y: 1.3842, z: 3.4611697} + m_Children: [] + m_Father: {fileID: 8733490491783399832} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!33 &4816955229005452814 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7333764339015059950} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!23 &3598006903418693204 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7333764339015059950} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 0} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 +--- !u!65 &4172356839361258916 +BoxCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7333764339015059950} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Size: {x: 1, y: 1, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!1001 &3233513818403237741 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 8733490491783399832} + m_Modifications: + - target: {fileID: -5178661895559278292, guid: cb3740ab608be7c4aa803b547e7fc259, + type: 3} + propertyPath: m_Mesh + value: + objectReference: {fileID: 1671783334187672780, guid: 11b3b9616100d8b4e89384232116cf7b, + type: 3} + - target: {fileID: -4216859302048453862, guid: cb3740ab608be7c4aa803b547e7fc259, + type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -4216859302048453862, guid: cb3740ab608be7c4aa803b547e7fc259, + type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -4216859302048453862, guid: cb3740ab608be7c4aa803b547e7fc259, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -4216859302048453862, guid: cb3740ab608be7c4aa803b547e7fc259, + type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: -4216859302048453862, guid: cb3740ab608be7c4aa803b547e7fc259, + type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: -4216859302048453862, guid: cb3740ab608be7c4aa803b547e7fc259, + type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: -4216859302048453862, guid: cb3740ab608be7c4aa803b547e7fc259, + type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: -4216859302048453862, guid: cb3740ab608be7c4aa803b547e7fc259, + type: 3} + propertyPath: m_RootOrder + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -4216859302048453862, guid: cb3740ab608be7c4aa803b547e7fc259, + type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -4216859302048453862, guid: cb3740ab608be7c4aa803b547e7fc259, + type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -4216859302048453862, guid: cb3740ab608be7c4aa803b547e7fc259, + type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -4216859302048453862, guid: cb3740ab608be7c4aa803b547e7fc259, + type: 3} + propertyPath: m_LocalScale.x + value: 1 + objectReference: {fileID: 0} + - target: {fileID: -4216859302048453862, guid: cb3740ab608be7c4aa803b547e7fc259, + type: 3} + propertyPath: m_LocalScale.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: -4216859302048453862, guid: cb3740ab608be7c4aa803b547e7fc259, + type: 3} + propertyPath: m_LocalScale.z + value: 1 + objectReference: {fileID: 0} + - target: {fileID: -1504981713932161579, guid: cb3740ab608be7c4aa803b547e7fc259, + type: 3} + propertyPath: m_Materials.Array.data[0] + value: + objectReference: {fileID: 2100000, guid: 4b391561a072cb844bebb805d3052dd1, type: 2} + - target: {fileID: -927199367670048503, guid: cb3740ab608be7c4aa803b547e7fc259, + type: 3} + propertyPath: m_Name + value: mesh_window + objectReference: {fileID: 0} + - target: {fileID: -927199367670048503, guid: cb3740ab608be7c4aa803b547e7fc259, + type: 3} + propertyPath: m_StaticEditorFlags + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: cb3740ab608be7c4aa803b547e7fc259, type: 3} +--- !u!1 &6917057036307052132 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: -927199367670048503, guid: cb3740ab608be7c4aa803b547e7fc259, + type: 3} + m_PrefabInstance: {fileID: 3233513818403237741} + m_PrefabAsset: {fileID: 0} +--- !u!4 &7612503256843175031 stripped +Transform: + m_CorrespondingSourceObject: {fileID: -4216859302048453862, guid: cb3740ab608be7c4aa803b547e7fc259, + type: 3} + m_PrefabInstance: {fileID: 3233513818403237741} + m_PrefabAsset: {fileID: 0} diff --git a/Packages/Floorplan-2.0/DefaultTileset/Prefabs/prefab_window_large_1.prefab.meta b/Packages/Floorplan-2.0/DefaultTileset/Prefabs/prefab_window_large_1.prefab.meta new file mode 100644 index 00000000..d0368f54 --- /dev/null +++ b/Packages/Floorplan-2.0/DefaultTileset/Prefabs/prefab_window_large_1.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 2d6fde89eebde394db4dac2e1e2bc81f +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/Floorplan-2.0/DefaultTileset/Prefabs/prefab_window_large_2.prefab b/Packages/Floorplan-2.0/DefaultTileset/Prefabs/prefab_window_large_2.prefab new file mode 100644 index 00000000..213c8cd9 --- /dev/null +++ b/Packages/Floorplan-2.0/DefaultTileset/Prefabs/prefab_window_large_2.prefab @@ -0,0 +1,175 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &2760337413371881268 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 8733490491783399832} + - component: {fileID: 2439553276690562714} + m_Layer: 0 + m_Name: prefab_window_large_2 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &8733490491783399832 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2760337413371881268} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 2, y: 1, z: 1} + m_Children: + - {fileID: 7612503256843175031} + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &2439553276690562714 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2760337413371881268} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d933d9bbd3e611d41a488afaa8ac3106, type: 3} + m_Name: + m_EditorClassIdentifier: + tileset: {fileID: 11400000, guid: 04655de02232d0642ad32b971b2e2a91, type: 2} + stuff: [] + tileType: 0 +--- !u!64 &6890266535702397416 +MeshCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6917057036307052132} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 3 + m_Convex: 0 + m_CookingOptions: 14 + m_Mesh: {fileID: -5432252085002834553, guid: cb3740ab608be7c4aa803b547e7fc259, type: 3} +--- !u!1001 &3233513818403237741 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 8733490491783399832} + m_Modifications: + - target: {fileID: -5178661895559278292, guid: cb3740ab608be7c4aa803b547e7fc259, + type: 3} + propertyPath: m_Mesh + value: + objectReference: {fileID: -351265073903546440, guid: 8231ef2cd10772d4a84e3e8900087151, + type: 3} + - target: {fileID: -4216859302048453862, guid: cb3740ab608be7c4aa803b547e7fc259, + type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -4216859302048453862, guid: cb3740ab608be7c4aa803b547e7fc259, + type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -4216859302048453862, guid: cb3740ab608be7c4aa803b547e7fc259, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -4216859302048453862, guid: cb3740ab608be7c4aa803b547e7fc259, + type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: -4216859302048453862, guid: cb3740ab608be7c4aa803b547e7fc259, + type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: -4216859302048453862, guid: cb3740ab608be7c4aa803b547e7fc259, + type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: -4216859302048453862, guid: cb3740ab608be7c4aa803b547e7fc259, + type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: -4216859302048453862, guid: cb3740ab608be7c4aa803b547e7fc259, + type: 3} + propertyPath: m_RootOrder + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -4216859302048453862, guid: cb3740ab608be7c4aa803b547e7fc259, + type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -4216859302048453862, guid: cb3740ab608be7c4aa803b547e7fc259, + type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -4216859302048453862, guid: cb3740ab608be7c4aa803b547e7fc259, + type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: -4216859302048453862, guid: cb3740ab608be7c4aa803b547e7fc259, + type: 3} + propertyPath: m_LocalScale.x + value: 1 + objectReference: {fileID: 0} + - target: {fileID: -4216859302048453862, guid: cb3740ab608be7c4aa803b547e7fc259, + type: 3} + propertyPath: m_LocalScale.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: -4216859302048453862, guid: cb3740ab608be7c4aa803b547e7fc259, + type: 3} + propertyPath: m_LocalScale.z + value: 1 + objectReference: {fileID: 0} + - target: {fileID: -1504981713932161579, guid: cb3740ab608be7c4aa803b547e7fc259, + type: 3} + propertyPath: m_Materials.Array.data[0] + value: + objectReference: {fileID: 2100000, guid: 4b391561a072cb844bebb805d3052dd1, type: 2} + - target: {fileID: -927199367670048503, guid: cb3740ab608be7c4aa803b547e7fc259, + type: 3} + propertyPath: m_Name + value: mesh_window + objectReference: {fileID: 0} + - target: {fileID: -927199367670048503, guid: cb3740ab608be7c4aa803b547e7fc259, + type: 3} + propertyPath: m_StaticEditorFlags + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: cb3740ab608be7c4aa803b547e7fc259, type: 3} +--- !u!1 &6917057036307052132 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: -927199367670048503, guid: cb3740ab608be7c4aa803b547e7fc259, + type: 3} + m_PrefabInstance: {fileID: 3233513818403237741} + m_PrefabAsset: {fileID: 0} +--- !u!4 &7612503256843175031 stripped +Transform: + m_CorrespondingSourceObject: {fileID: -4216859302048453862, guid: cb3740ab608be7c4aa803b547e7fc259, + type: 3} + m_PrefabInstance: {fileID: 3233513818403237741} + m_PrefabAsset: {fileID: 0} diff --git a/Packages/Floorplan-2.0/DefaultTileset/Prefabs/prefab_window_large_2.prefab.meta b/Packages/Floorplan-2.0/DefaultTileset/Prefabs/prefab_window_large_2.prefab.meta new file mode 100644 index 00000000..3a4a78b5 --- /dev/null +++ b/Packages/Floorplan-2.0/DefaultTileset/Prefabs/prefab_window_large_2.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: bdbaa7cf00eee39429b788a3c83408eb +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/Floorplan-2.0/Editor.meta b/Packages/Floorplan-2.0/Editor.meta new file mode 100644 index 00000000..0f606af3 --- /dev/null +++ b/Packages/Floorplan-2.0/Editor.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: e412d297825078a418685f3042b7a5e1 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/Floorplan-2.0/Editor/com.alexism.floorplan.editor.asmdef b/Packages/Floorplan-2.0/Editor/com.alexism.floorplan.editor.asmdef new file mode 100644 index 00000000..bdad962d --- /dev/null +++ b/Packages/Floorplan-2.0/Editor/com.alexism.floorplan.editor.asmdef @@ -0,0 +1,20 @@ +{ + "name": "com.alexism.floorplan.editor", + "references": [ + "com.alexism.floorplacom.alexism.floorplan", + "com.unity.2d.tilemap", + "Unity.TextMeshPro", + "com.alexismorin.floorplan.static" + ], + "includePlatforms": [ + "Editor" + ], + "excludePlatforms": [], + "allowUnsafeCode": true, + "overrideReferences": false, + "precompiledReferences": [], + "autoReferenced": true, + "defineConstraints": [], + "versionDefines": [], + "noEngineReferences": false +} \ No newline at end of file diff --git a/Packages/Floorplan-2.0/Editor/com.alexism.floorplan.editor.asmdef.meta b/Packages/Floorplan-2.0/Editor/com.alexism.floorplan.editor.asmdef.meta new file mode 100644 index 00000000..4421a261 --- /dev/null +++ b/Packages/Floorplan-2.0/Editor/com.alexism.floorplan.editor.asmdef.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 50b96086f9a4ae341abd2b67adf1e7a8 +AssemblyDefinitionImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/Floorplan-2.0/Editor/floorplanComponentEditor.cs b/Packages/Floorplan-2.0/Editor/floorplanComponentEditor.cs new file mode 100644 index 00000000..4f0a17a4 --- /dev/null +++ b/Packages/Floorplan-2.0/Editor/floorplanComponentEditor.cs @@ -0,0 +1,47 @@ +using System.Collections; +using UnityEditor; +using UnityEngine; +using alexism.Floorplan.Core.Components; +using alexism.Floorplan.Core.Enums; + +using System; +using System.Collections.Generic; + +namespace alexism.Floorplan.Core.editor +{ + [CustomEditor(typeof(floorplanComponent))] + public class floorplanComponentEditor : Editor + { + floorplanComponent script; + + public void OnEnable() + { + } + void TileTypeChange(object newTileType) + { + script.ChangeComponentType((GameObject)newTileType); + } + public override void OnInspectorGUI() + { + //DrawDefaultInspector(); + script = (floorplanComponent)target; + + if (EditorGUILayout.DropdownButton(new GUIContent("Tile type"), FocusType.Passive)) + { + + GenericMenu menu = new GenericMenu(); + foreach (TileTypes tileType in (TileTypes[])Enum.GetValues(typeof(TileTypes))) + { + if (tileType == TileTypes.None) + continue; + Debug.Log(tileType+" "+script.getTilesFromType(tileType)); + foreach (GameObject tile in script.getTilesFromType(tileType)) + { + menu.AddItem(new GUIContent(tileType.ToString()+"/"+tile.name), false,TileTypeChange,tile); + } + } + menu.ShowAsContext(); + } + } + } +} \ No newline at end of file diff --git a/Packages/Floorplan-2.0/Editor/floorplanComponentEditor.cs.meta b/Packages/Floorplan-2.0/Editor/floorplanComponentEditor.cs.meta new file mode 100644 index 00000000..1ff1de6f --- /dev/null +++ b/Packages/Floorplan-2.0/Editor/floorplanComponentEditor.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: a60b6805637845a42a1cb50a09fa8b44 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/Floorplan-2.0/Editor/floorplanEditor.cs b/Packages/Floorplan-2.0/Editor/floorplanEditor.cs new file mode 100644 index 00000000..00670a71 --- /dev/null +++ b/Packages/Floorplan-2.0/Editor/floorplanEditor.cs @@ -0,0 +1,279 @@ +using System.Collections.Generic; +using UnityEditor; +using UnityEngine; +using alexism.Floorplan.Core.Enums; +using TMPro; +using System.Linq; +using alexism.Floorplan.Core.Static; +namespace alexism.Floorplan.Core.editor +{ + [CustomEditor(typeof(floorplan))] + public class floorplanEditor : Editor + { + floorplan script; + + Vector3 mouseStart; + Vector3 mouseEnd; + + int drawToolInt = 0; + int drawObjetInt = 0; + int selectedObject = 0; + List selectedMaterials = new List(4); + + GUIContent[] drawToolStrings; + + Abstract.Tool currentTool; + Abstract.Tool[] tools = { new RectangleStrat(), new RectangleFilledStrat() }; + + GUIContent[] drawItemTextures; + Material[] materials; + + GameObject[] selecting; + + + Renderer currentObjectRenderer; + + GUIStyle TitleLabels; + + Vector2 scrollPos; + Vector2 scrollPos2; + + + void print(object print) + { + Debug.Log(print); + } + private void Awake() + { + script = (floorplan)target; + materials = new Material[0]; + } + + public void OnDisable() + { + + if (SceneView.lastActiveSceneView) + { + SceneView.lastActiveSceneView.isRotationLocked = false; + SceneView.lastActiveSceneView.rotation = Quaternion.identity; + SceneView.lastActiveSceneView.orthographic = false; + } + } + + + public void OnEnable() + { + + script = (floorplan)target; + if (SceneView.lastActiveSceneView) + { + SceneView.lastActiveSceneView.isRotationLocked = false; + SceneView.lastActiveSceneView.rotation = Quaternion.LookRotation(-Vector3.up, Vector3.up); + SceneView.lastActiveSceneView.isRotationLocked = true; + SceneView.lastActiveSceneView.orthographic = true; + } + drawToolStrings = new GUIContent[]{ + new GUIContent("0",Resources.Load("icons/RectTool"),"Rectangle"), + new GUIContent("1",Resources.Load("icons/FilledRectTool"),"Filled rectangle") + }; + drawItemTextures = new GUIContent[] { + new GUIContent("0",Resources.Load("icons/BrickIcon"),"Wall"), + new GUIContent("1",Resources.Load("icons/PillarIcon"),"Pillar"), + new GUIContent("2",Resources.Load("icons/FloorIcon"),"Floor") + }; + drawToolInt = EditorPrefs.GetInt("DrawTool", 0); + drawObjetInt = EditorPrefs.GetInt("DrawObjet", 0); + materials = new Material[0]; + if (script.selected.Count < 4 || selectedMaterials.Count < 4) + { + selectedMaterials = new List(4) { -1, -1, -1, -1 }; + script.selected = selectedMaterials; + } + else if(script.selected.Count > 4 || selectedMaterials.Count > 4) + { + selectedMaterials = new List(4) { -1, -1, -1, -1 }; + script.selected = selectedMaterials; + } + + } + public override void OnInspectorGUI() + { + DrawDefaultInspector(); + //Display drawing tools + + TitleLabels = new GUIStyle() + { + fontStyle = FontStyle.Normal + }; + TitleLabels.normal.textColor = Color.white; + script = (floorplan)target; + + //Saving certain variables (selected draw tool, selected object, selected material) + EditorPrefs.SetInt("DrawTool", drawToolInt); + EditorPrefs.SetInt("DrawObjet", drawObjetInt); + + //Generate toolbars for the drawing tools and objects. + EditorGUILayout.BeginVertical("Box"); + { + EditorGUILayout.BeginHorizontal("Box"); + { + GUILayout.Label("Drawing tools", TitleLabels, GUILayout.Height(16), GUILayout.Width(96)); + drawToolInt = GUILayout.Toolbar(drawToolInt, drawToolStrings, GUILayout.Width(48 * drawToolStrings.Length), GUILayout.Height(48)); + + GUILayout.Label("Objects", TitleLabels, GUILayout.Height(16), GUILayout.Width(64)); + drawObjetInt = GUILayout.Toolbar(drawObjetInt, drawItemTextures, GUILayout.Width(48 * drawItemTextures.Length), GUILayout.Height(48)); + currentTool = tools[drawToolInt]; + } + EditorGUILayout.EndHorizontal(); + } + EditorGUILayout.EndVertical(); + + EditorGUILayout.BeginVertical("Box"); + { + EditorGUILayout.LabelField("Tile", TitleLabels); + scrollPos2 = EditorGUILayout.BeginScrollView(scrollPos2, GUILayout.Width(450), GUILayout.Height(64)); + { + + selecting = IndexToTileArray(drawObjetInt); + GUIContent[] thumbnails = new GUIContent[selecting.Length]; + + for (int t = 0; t < selecting.Length; t++) + { + if (selecting[t] != null) + thumbnails[t] = new GUIContent(t.ToString(), AssetPreview.GetAssetPreview(selecting[t]), selecting[t].name); + } + selectedObject = GUILayout.Toolbar(selectedObject, thumbnails, GUILayout.Width(75 * selecting.Length), GUILayout.Height(50)); + } + EditorGUILayout.EndScrollView(); + } + EditorGUILayout.EndVertical(); + + currentObjectRenderer = selecting[selectedObject].GetComponentInChildren(); + + for (int i = 0; i < currentObjectRenderer.sharedMaterials.Length; i++) + { + if (!materials.Any(x => (x == null))) + { + EditorGUILayout.BeginVertical("Box"); + { + EditorGUILayout.LabelField("Material " + (i + 1).ToString(), TitleLabels); + scrollPos = EditorGUILayout.BeginScrollView(scrollPos, GUILayout.Width(250), GUILayout.Height(64)); + { + + //Generate material selection + materials = script.wallMaterials; + GUIContent[] materialPreviews = new GUIContent[materials.Length]; + + for (int m = 0; m < materials.Length; m++) + { + if (materials[m] != null) + materialPreviews[m] = new GUIContent(m.ToString(), materials[m].mainTexture, materials[m].name); + } + selectedMaterials[i] = GUILayout.Toolbar(selectedMaterials[i], materialPreviews, GUILayout.Width(50 * materials.Length), GUILayout.Height(50)); + } + EditorGUILayout.EndScrollView(); + } + EditorGUILayout.EndVertical(); + } + } + } + + public GameObject[] IndexToTileArray(int ind) + { + GameObject[] returning=new GameObject[0]; + switch (ind) + { + case 0: + returning = script.tileset.wallTiles; + break; + case 1: + returning = script.tileset.pillarTiles; + break; + case 2: + returning = script.tileset.floorTiles; + break; + } + + return returning; + } + + public static Vector3 snap(Vector3 pos, int v) + { + float x = pos.x; + float y = pos.y; + float z = pos.z; + x = Mathf.RoundToInt(x / v) * v; + y = Mathf.RoundToInt(y / v) * v; + z = Mathf.RoundToInt(z / v) * v; + return new Vector3(x, y, z); + } + + public void GetMousePosition(Vector3 MouseScreenPosition,out Vector3 MouseWorldPosition) + { + MouseWorldPosition = Vector3.zero; //initialize MouseWorldPosition as Vector3.zero + Ray ray = HandleUtility.GUIPointToWorldRay(Event.current.mousePosition); + RaycastHit hit; + if (Physics.Raycast(ray, out hit)) + { + MouseWorldPosition = snap(hit.point, (int)script.tileSize); + MouseWorldPosition.y = hit.point.y; + } + } + + void OnSceneGUI() + { + floorplan script = (floorplan)target; + if (mouseEnd!=Vector3.zero && mouseStart != Vector3.zero) + { + currentTool.RenderPreview(); + } + HandleUtility.AddDefaultControl(GUIUtility.GetControlID(FocusType.Keyboard)); + Event e = Event.current; + + switch (e.type) + { + case EventType.KeyDown: + { + break; + } + case EventType.MouseDown: + { + if (Event.current.button != 0) + { + return; + } + if (selectedMaterials.All(r => r == -1)) + { + Debug.Log("No material selected. Select a material before drawing"); + return; + } + GetMousePosition(Event.current.mousePosition, out mouseStart); + currentTool.MouseDown(mouseStart); + break; + } + case EventType.MouseDrag: + { + if (Event.current.button != 0 || mouseStart == Vector3.zero) + return; + GetMousePosition(Event.current.mousePosition, out mouseEnd); + currentTool.MouseDrag(mouseEnd); + break; + } + case EventType.MouseUp: + { + if (mouseEnd == Vector3.zero || mouseStart == Vector3.zero) + return; + GetMousePosition(Event.current.mousePosition, out mouseEnd); + currentTool.MouseUp(mouseEnd, (TileTypes)drawObjetInt,selecting[selectedObject],script,materials,selectedMaterials); + mouseEnd = Vector3.zero; + break; + } + case EventType.ExecuteCommand: + { + Debug.Log(Event.current.commandName); + break; + } + } + } + } +} \ No newline at end of file diff --git a/Packages/Floorplan-2.0/Editor/floorplanEditor.cs.meta b/Packages/Floorplan-2.0/Editor/floorplanEditor.cs.meta new file mode 100644 index 00000000..057813ef --- /dev/null +++ b/Packages/Floorplan-2.0/Editor/floorplanEditor.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 0e3dcaa8f5484a543a0e1347a2244fe2 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/Floorplan-2.0/Editor/floorplanMenuItem.cs b/Packages/Floorplan-2.0/Editor/floorplanMenuItem.cs new file mode 100644 index 00000000..3b4a4dfb --- /dev/null +++ b/Packages/Floorplan-2.0/Editor/floorplanMenuItem.cs @@ -0,0 +1,19 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEditor; +using UnityEngine; + + +namespace alexism.Floorplan.Core.editor +{ + public class floorplanMenuItem : MonoBehaviour + { + + [MenuItem("Tools/Add Floorplan Handle")] + static void addFloorplanHandle() + { + GameObject floorplanHandleGameObject = new GameObject("New Floorplan Handle"); + floorplanHandleGameObject.AddComponent(); + } + } +} \ No newline at end of file diff --git a/Packages/Floorplan-2.0/Editor/floorplanMenuItem.cs.meta b/Packages/Floorplan-2.0/Editor/floorplanMenuItem.cs.meta new file mode 100644 index 00000000..2205f1eb --- /dev/null +++ b/Packages/Floorplan-2.0/Editor/floorplanMenuItem.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 974d7f4ab24eac949bf3d3cb48dd0128 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: + - defaultTileset: {fileID: 11400000, guid: 04655de02232d0642ad32b971b2e2a91, type: 2} + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/Floorplan-2.0/LICENSE b/Packages/Floorplan-2.0/LICENSE new file mode 100644 index 00000000..325699cf --- /dev/null +++ b/Packages/Floorplan-2.0/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2020 Bradley Bath + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/Packages/Floorplan-2.0/LICENSE.meta b/Packages/Floorplan-2.0/LICENSE.meta new file mode 100644 index 00000000..13e8b114 --- /dev/null +++ b/Packages/Floorplan-2.0/LICENSE.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: e1d356df1bc1a0349b98f6e0602e92e9 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/Floorplan-2.0/README.md b/Packages/Floorplan-2.0/README.md new file mode 100644 index 00000000..f432b987 --- /dev/null +++ b/Packages/Floorplan-2.0/README.md @@ -0,0 +1,33 @@ +# BEING REWORKED +Due to how awful my code is in this and how much of this code is tailored towards how I'm developing my game rather than fitting a general purpose role, I've decided I'm going to recreate completely it under a new name. This won't get any new updates and I'll update this once the new tool is ready. + +# Floorplan + Based off of the Unity asset by Alexis Morin. + + +This is an extensiive modification to Alexis Morin's floorplan unity plugin. So much so that I believe the code base to be atleast 90% changed if not 100%. + +Bewarned, however, a lot of this code was written by a complete idiot (me) and while I'm developing a game so a lot of features may be based around said game and may not be fit for general purpose. + + +What are the changes I've made, you say? Well: + +1. Completely overhauled controls. Now it's a custom inspector with it's own UI where you can choose which tile you want to draw, it's materials (supports objects with multiple materials) and which tool you want to draw with (currently only a rectangle and filled rectangle tool. The filled rectangle tool only works with floor tiles and the normal rectangle tool only works with walls) + +2. Added a script that combines all the tiles created by floorplan into one big mesh. I found that, even with static batching, performance was significantly reduced especially when post-processing was used. This script just goes through all tiles and combines their meshes. It has a filter for any objects with a rigidbody (to stop stuff like doors that you want to have dynamic hinges on from being merged) + +3. Tileset changes. Before, a tileset only had 1 tile per type (Floor, Wall, Arch, Window). Now there's three categories and it's been changed so each type is an array of game objects so you can have (technically) an infinite amount of tiles per type. + +4. Overlap prevention. Before a tile is placed it checks that area using CheckSphere to make sure there isn't another tile. If there is, it won't place a tile there. (this will only check for objects created by floorplan). Floor tiles however will replace any floor tile at that position. + +5. Multi material support. As aforementioned, I implemented support to choose materials for objects that can have multiple materials on the tile. For this to work, the first child of the tile prefab should be the object that you want to change material for. It only supports up to 4 materials but this can easily be changed (limited due to space each material row takes up) + + +## Roadmap +1. Optimize mesh collider for merged tiles. Currently, when tiles are merged, there's a tonne of redundant triangles that can reduced down to as little as two triangles. I haven't seen any performance problems due to the current mesh, but that may be different for each person. If anyone has any ideas on how I could achieve this, please create an issue. I'm pretty dumb so please link to any specific algorithm I could use. + +2. Better code. This code is very ugly. Performance doesn't suffer from it I believe, but readability and coherence does. + +3. Better undo/redo functionality. Currently it supports the undo/redo of walls you place. + +4. Delete tool. There's currently no way to directly delete tiles without selecting them in the editor and manually deleting them. diff --git a/Packages/Floorplan-2.0/README.md.meta b/Packages/Floorplan-2.0/README.md.meta new file mode 100644 index 00000000..424a043b --- /dev/null +++ b/Packages/Floorplan-2.0/README.md.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: be1cd7f75d7689a46be70a919634a369 +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/Floorplan-2.0/Resources.meta b/Packages/Floorplan-2.0/Resources.meta new file mode 100644 index 00000000..24c80d3e --- /dev/null +++ b/Packages/Floorplan-2.0/Resources.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 180851805e6493f408ba5f91e794ed35 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/Floorplan-2.0/Resources/Icons.meta b/Packages/Floorplan-2.0/Resources/Icons.meta new file mode 100644 index 00000000..4477ec8e --- /dev/null +++ b/Packages/Floorplan-2.0/Resources/Icons.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 75afe7b3b08c0aa44b19da3f6d67b0da +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/Floorplan-2.0/Resources/Icons/BrickIcon.png b/Packages/Floorplan-2.0/Resources/Icons/BrickIcon.png new file mode 100644 index 00000000..c317bdbf Binary files /dev/null and b/Packages/Floorplan-2.0/Resources/Icons/BrickIcon.png differ diff --git a/Packages/Floorplan-2.0/Resources/Icons/BrickIcon.png.meta b/Packages/Floorplan-2.0/Resources/Icons/BrickIcon.png.meta new file mode 100644 index 00000000..3bc35a74 --- /dev/null +++ b/Packages/Floorplan-2.0/Resources/Icons/BrickIcon.png.meta @@ -0,0 +1,139 @@ +fileFormatVersion: 2 +guid: 96f28131411f7fa48907c02d928a3a77 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 10 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: -1 + mipBias: -100 + wrapU: -1 + wrapV: -1 + wrapW: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Windows Store Apps + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Android + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: WebGL + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/Floorplan-2.0/Resources/Icons/FilledRectTool.png b/Packages/Floorplan-2.0/Resources/Icons/FilledRectTool.png new file mode 100644 index 00000000..44cc4826 Binary files /dev/null and b/Packages/Floorplan-2.0/Resources/Icons/FilledRectTool.png differ diff --git a/Packages/Floorplan-2.0/Resources/Icons/FilledRectTool.png.meta b/Packages/Floorplan-2.0/Resources/Icons/FilledRectTool.png.meta new file mode 100644 index 00000000..c2be0d01 --- /dev/null +++ b/Packages/Floorplan-2.0/Resources/Icons/FilledRectTool.png.meta @@ -0,0 +1,139 @@ +fileFormatVersion: 2 +guid: 16a16847bb2ec9a498043385cadef5fa +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 10 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: -1 + mipBias: -100 + wrapU: -1 + wrapV: -1 + wrapW: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Windows Store Apps + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Android + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: WebGL + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/Floorplan-2.0/Resources/Icons/FloorIcon.png b/Packages/Floorplan-2.0/Resources/Icons/FloorIcon.png new file mode 100644 index 00000000..b5975f21 Binary files /dev/null and b/Packages/Floorplan-2.0/Resources/Icons/FloorIcon.png differ diff --git a/Packages/Floorplan-2.0/Resources/Icons/FloorIcon.png.meta b/Packages/Floorplan-2.0/Resources/Icons/FloorIcon.png.meta new file mode 100644 index 00000000..bdfc68b7 --- /dev/null +++ b/Packages/Floorplan-2.0/Resources/Icons/FloorIcon.png.meta @@ -0,0 +1,139 @@ +fileFormatVersion: 2 +guid: 96c774b63cc3b554ea24db5bc8baea59 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 10 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: -1 + mipBias: -100 + wrapU: -1 + wrapV: -1 + wrapW: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Windows Store Apps + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Android + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: WebGL + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/Floorplan-2.0/Resources/Icons/PillarIcon.png b/Packages/Floorplan-2.0/Resources/Icons/PillarIcon.png new file mode 100644 index 00000000..92d5a330 Binary files /dev/null and b/Packages/Floorplan-2.0/Resources/Icons/PillarIcon.png differ diff --git a/Packages/Floorplan-2.0/Resources/Icons/PillarIcon.png.meta b/Packages/Floorplan-2.0/Resources/Icons/PillarIcon.png.meta new file mode 100644 index 00000000..6e079202 --- /dev/null +++ b/Packages/Floorplan-2.0/Resources/Icons/PillarIcon.png.meta @@ -0,0 +1,139 @@ +fileFormatVersion: 2 +guid: d43645ef2b848b049a99ff2c9980dd56 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 10 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 2 + aniso: -1 + mipBias: -100 + wrapU: -1 + wrapV: -1 + wrapW: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Windows Store Apps + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Android + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: WebGL + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/Floorplan-2.0/Resources/Icons/RectTool.png b/Packages/Floorplan-2.0/Resources/Icons/RectTool.png new file mode 100644 index 00000000..0899450a Binary files /dev/null and b/Packages/Floorplan-2.0/Resources/Icons/RectTool.png differ diff --git a/Packages/Floorplan-2.0/Resources/Icons/RectTool.png.meta b/Packages/Floorplan-2.0/Resources/Icons/RectTool.png.meta new file mode 100644 index 00000000..45f85eb3 --- /dev/null +++ b/Packages/Floorplan-2.0/Resources/Icons/RectTool.png.meta @@ -0,0 +1,139 @@ +fileFormatVersion: 2 +guid: 8d7cafb452df9a2458eb3240b417c79a +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 10 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: -1 + mipBias: -100 + wrapU: -1 + wrapV: -1 + wrapW: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Windows Store Apps + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Android + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: WebGL + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/Floorplan-2.0/Resources/Materials.meta b/Packages/Floorplan-2.0/Resources/Materials.meta new file mode 100644 index 00000000..702db372 --- /dev/null +++ b/Packages/Floorplan-2.0/Resources/Materials.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 57e4a37311f25eb458b7331e9285d337 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/Floorplan-2.0/Resources/Materials/Preview.mat b/Packages/Floorplan-2.0/Resources/Materials/Preview.mat new file mode 100644 index 00000000..cfb9e961 --- /dev/null +++ b/Packages/Floorplan-2.0/Resources/Materials/Preview.mat @@ -0,0 +1,78 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 6 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Preview + m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0} + m_ShaderKeywords: _ALPHAPREMULTIPLY_ON + m_LightmapFlags: 4 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: 3000 + stringTagMap: + RenderType: Transparent + disabledShaderPasses: [] + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - _BumpMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailAlbedoMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailMask: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailNormalMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _EmissionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MainTex: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MetallicGlossMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _OcclusionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _ParallaxMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + - _BumpScale: 1 + - _Cutoff: 0.5 + - _DetailNormalMapScale: 1 + - _DstBlend: 10 + - _GlossMapScale: 1 + - _Glossiness: 0.5 + - _GlossyReflections: 1 + - _Metallic: 0 + - _Mode: 3 + - _OcclusionStrength: 1 + - _Parallax: 0.02 + - _SmoothnessTextureChannel: 0 + - _SpecularHighlights: 1 + - _SrcBlend: 1 + - _UVSec: 0 + - _ZWrite: 0 + m_Colors: + - _Color: {r: 0.18781996, g: 1, b: 0, a: 0.2627451} + - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} diff --git a/Packages/Floorplan-2.0/Resources/Materials/Preview.mat.meta b/Packages/Floorplan-2.0/Resources/Materials/Preview.mat.meta new file mode 100644 index 00000000..8756a566 --- /dev/null +++ b/Packages/Floorplan-2.0/Resources/Materials/Preview.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 8301f891926601e43baa728534af9c49 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/Floorplan-2.0/Resources/Prefabs.meta b/Packages/Floorplan-2.0/Resources/Prefabs.meta new file mode 100644 index 00000000..fefb33e8 --- /dev/null +++ b/Packages/Floorplan-2.0/Resources/Prefabs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: a50e142ea1be1ba4e9db72311fe65f34 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/Floorplan-2.0/Resources/Prefabs/Text (TMP).prefab b/Packages/Floorplan-2.0/Resources/Prefabs/Text (TMP).prefab new file mode 100644 index 00000000..55cd2b5b --- /dev/null +++ b/Packages/Floorplan-2.0/Resources/Prefabs/Text (TMP).prefab @@ -0,0 +1,206 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &6118086287173152400 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 6702624060538877900} + - component: {fileID: 5013107265394775091} + - component: {fileID: 4016085969097017413} + - component: {fileID: 8295655866629025237} + - component: {fileID: 2459529298631480252} + m_Layer: 0 + m_Name: Text (TMP) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &6702624060538877900 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6118086287173152400} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 20, y: 5} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!23 &5013107265394775091 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6118086287173152400} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 +--- !u!33 &4016085969097017413 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6118086287173152400} + m_Mesh: {fileID: 0} +--- !u!222 &8295655866629025237 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6118086287173152400} + m_CullTransparentMesh: 0 +--- !u!114 &2459529298631480252 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6118086287173152400} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 9541d86e2fd84c1d9990edf0852d74ab, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: Sample text + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4294967295 + m_fontColor: {r: 1, g: 1, b: 1, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_outlineColor: + serializedVersion: 2 + rgba: 4278190080 + m_fontSize: 36 + m_fontSizeBase: 36 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_textAlignment: 257 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_enableWordWrapping: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_firstOverflowCharacterIndex: -1 + m_linkedTextComponent: {fileID: 0} + m_isLinkedTextComponent: 0 + m_isTextTruncated: 0 + m_enableKerning: 1 + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 0 + m_isCullingEnabled: 0 + m_ignoreRectMaskCulling: 0 + m_ignoreCulling: 1 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_VertexBufferAutoSizeReduction: 1 + m_firstVisibleCharacter: 0 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_textInfo: + textComponent: {fileID: 2459529298631480252} + characterCount: 11 + spriteCount: 0 + spaceCount: 1 + wordCount: 2 + linkCount: 0 + lineCount: 1 + pageCount: 1 + materialCount: 1 + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_spriteAnimator: {fileID: 0} + m_hasFontAssetChanged: 0 + m_renderer: {fileID: 5013107265394775091} + m_subTextObjects: + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + m_maskType: 0 diff --git a/Packages/Floorplan-2.0/Resources/Prefabs/Text (TMP).prefab.meta b/Packages/Floorplan-2.0/Resources/Prefabs/Text (TMP).prefab.meta new file mode 100644 index 00000000..d9cd947c --- /dev/null +++ b/Packages/Floorplan-2.0/Resources/Prefabs/Text (TMP).prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 90fafcffd036eed4ea20a9a143fbb3c1 +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/Floorplan-2.0/Scripts.meta b/Packages/Floorplan-2.0/Scripts.meta new file mode 100644 index 00000000..e65ef676 --- /dev/null +++ b/Packages/Floorplan-2.0/Scripts.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 0471fb480fb9a984982bb23e1b126769 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/Floorplan-2.0/Scripts/Abstract.meta b/Packages/Floorplan-2.0/Scripts/Abstract.meta new file mode 100644 index 00000000..77d4a622 --- /dev/null +++ b/Packages/Floorplan-2.0/Scripts/Abstract.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 6b60e70ac29709245a6762ce1b754786 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/Floorplan-2.0/Scripts/Abstract/Tool.cs b/Packages/Floorplan-2.0/Scripts/Abstract/Tool.cs new file mode 100644 index 00000000..cd140369 --- /dev/null +++ b/Packages/Floorplan-2.0/Scripts/Abstract/Tool.cs @@ -0,0 +1,254 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; +using TMPro; +using UnityEditor; +using alexism.Floorplan.Core.Enums; +using alexism.Floorplan.Core; +using alexism.Floorplan.Core.Abstract; +using System.Runtime.InteropServices; +using UnityEditor.Experimental.GraphView; + +//Implement strategy pattern for drawing tools + +namespace alexism.Floorplan.Core.Abstract +{ + public abstract class Tool + { + public abstract void MouseDown(Vector3 mousePos); + public abstract void MouseDrag(Vector3 mousePos); + public abstract void MouseUp(Vector3 mousePos, TileTypes tileType, GameObject tile,floorplan script, Material[] mat, List selected); + + public abstract void RenderPreview(); + } +} +//Some classes that inherit Tool. I should probably put these into their own separate files. + +public class RectangleFilledStrat : alexism.Floorplan.Core.Abstract.Tool +{ + float width; + float height; + Vector3 mouseStart; + Vector3 mouseEnd; + + public void Render(GameObject tile, floorplan script, Material[] mats) + { + GameObject gO = new GameObject("Floor"); + gO.transform.parent = script.geometry.transform; + Vector3 topLeft = new Vector3(Mathf.Max(mouseStart.x, mouseEnd.x), mouseStart.y, Mathf.Max(mouseStart.z, mouseEnd.z)); + for (int y = 0; y < Mathf.Abs(height); y += (int)script.tileSize) + { + for (int x = 0; x < Mathf.Abs(width); x += (int)script.tileSize) + { + GameObject floor = script.createInstance(tile, (topLeft - new Vector3(x, 0, y + script.tileSize)), Quaternion.identity); + floor.GetComponent().materials = mats; + floor.transform.parent.parent = gO.transform; + } + } + Undo.RegisterCreatedObjectUndo(gO,"Undo floor creation"); + } + + public override void MouseDown(Vector3 mousePos) + { + mouseStart = mousePos; + } + + public override void MouseDrag(Vector3 mousePos) + { + width = -(mouseEnd.x - mouseStart.x); + height = -(mouseEnd.z - mouseStart.z); + mouseEnd = mousePos; + } + + public override void MouseUp(Vector3 mousePos, TileTypes tileType, GameObject tile, floorplan script, Material[] mat, List selected) + { + Vector3[] points = new Vector3[] + { + mouseStart, + mouseEnd, + mouseStart-(new Vector3(width,0,0)), + mouseEnd+(new Vector3(width,0,0)) + }; + List mats = new List(); + selected.RemoveAll(o => o == -1); + for (int i = 0; i < selected.Count; i++) + { + mats.Add(mat[selected[i]]); + } + //Should we even do this (manage which tiletypes a tool can create) inside tools? Should this be handled by something else? + switch (tileType){ + case TileTypes.Wall: + Debug.LogWarning("Trying to draw type Wall with incorrect tool"); + break; + case TileTypes.Floor: + Render(tile,script,mats.ToArray()); + break; + case TileTypes.Pillar: + Debug.LogWarning("Trying to draw type Pillar with incorrect tool"); + break; + } + + mouseStart = Vector3.zero; + mouseEnd = Vector3.zero; + } + + public override void RenderPreview() + { + Handles.color = Color.red; + Handles.DrawWireCube(mouseStart - new Vector3(width / 2, 0, height / 2), new Vector3(width, 2, height)); + } +} + + +public class RectangleStrat : alexism.Floorplan.Core.Abstract.Tool +{ + float width; + float height; + Vector3 mouseStart; + Vector3 mouseEnd; + GameObject depthText; + GameObject widthText; + bool replace; + void Render(floorplan script, GameObject tile,Material[] mats) + { + GameObject pillar = script.getTilesFromType(TileTypes.Pillar)[0]; + GameObject gO = new GameObject("Walls"); + gO.transform.parent = script.geometry.transform; + Vector3 topLeft = new Vector3(Mathf.Max(mouseStart.x, mouseEnd.x), mouseStart.y, Mathf.Max(mouseStart.z, mouseEnd.z)); + Vector3 bottomLeft = new Vector3(Mathf.Min(mouseStart.x, mouseEnd.x), mouseStart.y, Mathf.Min(mouseStart.z, mouseEnd.z)); + + for (int x = 0; x < Mathf.Abs(width); x += (int)script.tileSize) + { + Vector3 offset = topLeft - new Vector3(x+script.tileSize/2, -.5f, 0); + Vector3 offset2 = bottomLeft - new Vector3(-x-script.tileSize/2, -.5f, 0); + + GameObject wall = null; + if (!Physics.CheckSphere(offset, .1f)) + { + wall = script.createInstance(tile, (topLeft - new Vector3(x + script.tileSize, 0, 0)), Quaternion.LookRotation(Vector3.right, Vector3.up)); + wall.GetComponent().materials = mats; + wall.transform.parent.parent = gO.transform; + } + if (!Physics.CheckSphere(offset2, .1f)) + { + wall = script.createInstance(tile, (bottomLeft - new Vector3(-x - script.tileSize, 0, 0)), Quaternion.LookRotation(-Vector3.right, Vector3.up)); + wall.GetComponent().materials = mats; + wall.transform.parent.parent = gO.transform; + } + } + for (int z = 0; z < Mathf.Abs(height); z += (int)script.tileSize) + { + Vector3 offset = topLeft - new Vector3(0, -.5f, z+script.tileSize/2); + Vector3 offset2 = bottomLeft - new Vector3(0,-.5f, -z-script.tileSize/2); + GameObject wall = null; + if (!Physics.CheckSphere(offset, .1f)) + { + wall = script.createInstance(tile, (topLeft - new Vector3(0, 0, z)), Quaternion.LookRotation(-Vector3.forward, Vector3.up)); + wall.GetComponent().materials = mats; + wall.transform.parent.parent = gO.transform; + + } + + if (!Physics.CheckSphere(offset2, .1f)) + { + wall = script.createInstance(tile, (bottomLeft - new Vector3(0, 0, -z)), Quaternion.identity); + wall.GetComponent().materials = mats; + wall.transform.parent.parent = gO.transform; + } + } + //Create pillars. God all of the code in this place is awful. I'm sorry. + GameObject pillarTopLeft = script.createInstance(pillar, bottomLeft, Quaternion.identity); + GameObject pillarBottomLeft = script.createInstance(pillar, topLeft, Quaternion.identity); + GameObject pillarTopRight = script.createInstance(pillar, topLeft + new Vector3(width, 0, 0), Quaternion.identity); + GameObject pillarBottomRight = script.createInstance(pillar, bottomLeft + new Vector3(-width, 0, 0), Quaternion.identity); + pillarTopLeft.GetComponent().materials = mats; + pillarBottomLeft.GetComponent().materials = mats; + pillarTopRight.GetComponent().materials = mats; + pillarBottomRight.GetComponent().materials = mats; + + + pillarTopLeft.transform.parent.parent = gO.transform; + pillarBottomLeft.transform.parent.parent = gO.transform; + pillarTopRight.transform.parent.parent = gO.transform; + pillarBottomRight.transform.parent.parent = gO.transform; + + Undo.RegisterCreatedObjectUndo(gO, "Undo wall creation"); + } + + public override void RenderPreview() + { + + Handles.color = Color.red; + Handles.DrawWireCube(mouseStart - new Vector3(width / 2, 0, height / 2), new Vector3(width, 2, height)); + } + + public override void MouseDown(Vector3 mousePos) + { + mouseStart = mousePos; + } + public override void MouseDrag(Vector3 mousePos) + { + width = -(mouseEnd.x - mouseStart.x); + height = -(mouseEnd.z - mouseStart.z); + mouseEnd = mousePos; + if (depthText == null) + { + //Initialize text. I could probably just use Handles.Label but this gives me more control over the look for text imo (and gives me way more awful code :D!) + depthText = new GameObject(); + TextMeshPro dText = depthText.AddComponent(); + dText.enableAutoSizing = true; + depthText.transform.rotation = Quaternion.LookRotation(-Vector3.up, -Vector3.right); + dText.color = Color.black; + dText.fontSizeMax = 8; + widthText = new GameObject(); + TextMeshPro wText = widthText.AddComponent(); + wText.enableAutoSizing = true; + widthText.transform.rotation = Quaternion.LookRotation(-Vector3.up, Vector3.up); + widthText.transform.localScale = new Vector3(1, 1, -1); + wText.color = Color.black; + wText.fontSizeMax = 8; + } + else + { + TextMeshPro dText = depthText.GetComponent(); + depthText.GetComponent().position = mouseStart - new Vector3(.5f, -1, (height / 2) + dText.textBounds.center.x); + depthText.GetComponent().text = "Depth: "+Mathf.Abs((height / 2)).ToString(); + TextMeshPro wText = widthText.GetComponent(); + + widthText.GetComponent().position = mouseStart - new Vector3((width/2)+wText.textBounds.center.x, -1, -.5f); + widthText.GetComponent().text = "Width: "+Mathf.Abs((width / 2)).ToString(); + + } + } + public override void MouseUp(Vector3 mousePos, TileTypes tileType,GameObject tile,floorplan script, Material[] mat,List selected) + { + //Get the 4 corners of the rectangle + Vector3[] points = new Vector3[] + { + mouseStart, + mouseEnd, + mouseStart-(new Vector3(width,0,0)), + mouseEnd+(new Vector3(width,0,0)) + }; + List mats = new List(); + selected.RemoveAll(o => o == -1); + Debug.Log(selected.Count); + for(int i=0; i(); + gridScale = grid.cellSize.x/10; + } + // draw the grid :) + void OnDrawGizmosSelected() + { + + // orient to the gameobject, so you can rotate the grid independently if desired + Gizmos.matrix = transform.localToWorldMatrix; + + // set colours + Color dimColor = new Color(gizmoLineColor.r, gizmoLineColor.g, gizmoLineColor.b, 0.25f * gizmoLineColor.a); + Color brightColor = Color.Lerp(Color.white, gizmoLineColor, 0.75f); + + // draw the horizontal lines + for (int x = minX; x < maxX + 1; x++) + { + // find major lines + Gizmos.color = (x % gizmoMajorLines == 0 ? gizmoLineColor : dimColor); + if (x == 0) + Gizmos.color = brightColor; + + Vector3 pos1 = new Vector3(x, minY, 0) * gridScale; + Vector3 pos2 = new Vector3(x, maxY, 0) * gridScale; + + // convert to topdown/overhead units if necessary + if (topDownGrid) + { + pos1 = new Vector3(pos1.x, 0, pos1.y); + pos2 = new Vector3(pos2.x, 0, pos2.y); + } + + Gizmos.DrawLine((gridOffset + pos1), (gridOffset + pos2)); + } + + // draw the vertical lines + for (int y = minY; y < maxY + 1; y++) + { + // find major lines + Gizmos.color = (y % gizmoMajorLines == 0 ? gizmoLineColor : dimColor); + if (y == 0) + Gizmos.color = brightColor; + + Vector3 pos1 = new Vector3(minX, y, 0) * gridScale; + Vector3 pos2 = new Vector3(maxX, y, 0) * gridScale; + + // convert to topdown/overhead units if necessary + if (topDownGrid) + { + pos1 = new Vector3(pos1.x, 0, pos1.y); + pos2 = new Vector3(pos2.x, 0, pos2.y); + } + + Gizmos.DrawLine((gridOffset + pos1), (gridOffset + pos2)); + } + } +} \ No newline at end of file diff --git a/Packages/Floorplan-2.0/Scripts/DrawGizmoGrid.cs.meta b/Packages/Floorplan-2.0/Scripts/DrawGizmoGrid.cs.meta new file mode 100644 index 00000000..dd9b9e7d --- /dev/null +++ b/Packages/Floorplan-2.0/Scripts/DrawGizmoGrid.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 86e1e5e2582bb564fa54cb6dc6cde247 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/Floorplan-2.0/Scripts/Enums.meta b/Packages/Floorplan-2.0/Scripts/Enums.meta new file mode 100644 index 00000000..994d5aab --- /dev/null +++ b/Packages/Floorplan-2.0/Scripts/Enums.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 1d6771a18eba00443b669d8971816238 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/Floorplan-2.0/Scripts/Enums/TileTypes.cs b/Packages/Floorplan-2.0/Scripts/Enums/TileTypes.cs new file mode 100644 index 00000000..3c9d4491 --- /dev/null +++ b/Packages/Floorplan-2.0/Scripts/Enums/TileTypes.cs @@ -0,0 +1,10 @@ +namespace alexism.Floorplan.Core.Enums +{ + public enum TileTypes + { + Wall, + Pillar, + Floor, + None + } +} diff --git a/Packages/Floorplan-2.0/Scripts/Enums/TileTypes.cs.meta b/Packages/Floorplan-2.0/Scripts/Enums/TileTypes.cs.meta new file mode 100644 index 00000000..d5b45c7e --- /dev/null +++ b/Packages/Floorplan-2.0/Scripts/Enums/TileTypes.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: b75a3cb37a7c18844bf12d735e9683b7 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/Floorplan-2.0/Scripts/Enums/ToolTypes.cs b/Packages/Floorplan-2.0/Scripts/Enums/ToolTypes.cs new file mode 100644 index 00000000..59223dc8 --- /dev/null +++ b/Packages/Floorplan-2.0/Scripts/Enums/ToolTypes.cs @@ -0,0 +1,12 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +namespace alexism.Floorplan.Core.Enums +{ + public enum ToolTypes + { + Rectangle, + RectangleFilled + } +} \ No newline at end of file diff --git a/Packages/Floorplan-2.0/Scripts/Enums/ToolTypes.cs.meta b/Packages/Floorplan-2.0/Scripts/Enums/ToolTypes.cs.meta new file mode 100644 index 00000000..23d725bb --- /dev/null +++ b/Packages/Floorplan-2.0/Scripts/Enums/ToolTypes.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 43e3308c14f4ea248a1f49a0ec902c80 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/Floorplan-2.0/Scripts/MeshColliderTools.cs b/Packages/Floorplan-2.0/Scripts/MeshColliderTools.cs new file mode 100644 index 00000000..78e09e49 --- /dev/null +++ b/Packages/Floorplan-2.0/Scripts/MeshColliderTools.cs @@ -0,0 +1,547 @@ +using System; +using System.Collections.Generic; +using System.Text; + +using UnityEngine; +using UnityEditor; +using System.Linq; + +static public class MeshColliderTools +{ + + public static void SnapToGrid(this Mesh mesh, float gridDelta) + { + if (gridDelta < 1e-5f) + return; + float inverse = 1f / gridDelta; + var verts = mesh.vertices; + for (int i = 0; i < verts.Length; i++) + { + verts[i].x = Mathf.RoundToInt(verts[i].x * inverse) / inverse; + verts[i].y = Mathf.RoundToInt(verts[i].y * inverse) / inverse; + verts[i].z = Mathf.RoundToInt(verts[i].z * inverse) / inverse; + } + mesh.vertices = verts; + } + + public static void Weld(this Mesh mesh, float threshold, float bucketStep) + { + Vector3[] oldVertices = mesh.vertices; + Vector3[] newVertices = new Vector3[oldVertices.Length]; + int[] old2new = new int[oldVertices.Length]; + Vector2[] oldUVs = mesh.uv; + + int newSize = 0; + + // Find AABB + Vector3 min = new Vector3(float.MaxValue, float.MaxValue, float.MaxValue); + Vector3 max = new Vector3(float.MinValue, float.MinValue, float.MinValue); + for (int i = 0; i < oldVertices.Length; i++) + { + if (oldVertices[i].x < min.x) min.x = oldVertices[i].x; + if (oldVertices[i].y < min.y) min.y = oldVertices[i].y; + if (oldVertices[i].z < min.z) min.z = oldVertices[i].z; + if (oldVertices[i].x > max.x) max.x = oldVertices[i].x; + if (oldVertices[i].y > max.y) max.y = oldVertices[i].y; + if (oldVertices[i].z > max.z) max.z = oldVertices[i].z; + } + min -= Vector3.one * 0.111111f; + max += Vector3.one * 0.899999f; + + // Make cubic buckets, each with dimensions "bucketStep" + int bucketSizeX = Mathf.FloorToInt((max.x - min.x) / bucketStep) + 1; + int bucketSizeY = Mathf.FloorToInt((max.y - min.y) / bucketStep) + 1; + int bucketSizeZ = Mathf.FloorToInt((max.z - min.z) / bucketStep) + 1; + List[,,] buckets = new List[bucketSizeX, bucketSizeY, bucketSizeZ]; + + // Make new vertices + for (int i = 0; i < oldVertices.Length; i++) + { + // Determine which bucket it belongs to + int x = Mathf.FloorToInt((oldVertices[i].x - min.x) / bucketStep); + int y = Mathf.FloorToInt((oldVertices[i].y - min.y) / bucketStep); + int z = Mathf.FloorToInt((oldVertices[i].z - min.z) / bucketStep); + + // Check to see if it's already been added + if (buckets[x, y, z] == null) + buckets[x, y, z] = new List(); // Make buckets lazily + + for (int j = 0; j < buckets[x, y, z].Count; j++) + { + Vector3 to = newVertices[buckets[x, y, z][j]] - oldVertices[i]; + if (Vector3.SqrMagnitude(to) < 0.001f) + { + old2new[i] = buckets[x, y, z][j]; + goto skip; // Skip to next old vertex if this one is already there + } + } + + // Add new vertex + newVertices[newSize] = oldVertices[i]; + buckets[x, y, z].Add(newSize); + old2new[i] = newSize; + newSize++; + + skip:; + } + + // Make new triangles + int[] oldTris = mesh.triangles; + int[] newTris = new int[oldTris.Length]; + for (int i = 0; i < oldTris.Length; i++) + { + newTris[i] = old2new[oldTris[i]]; + } + + Vector3[] finalVertices = new Vector3[newSize]; + for (int i = 0; i < newSize; i++) + finalVertices[i] = newVertices[i]; + + mesh.Clear(); + mesh.vertices = finalVertices; + mesh.triangles = newTris; + Vector2[] newUVs = new Vector2[mesh.vertices.Length]; + for(int i=0; i(origNumVerts); + for (int i = 0; i < origNumVerts; i++) + { + var r = new Vertice(); + r.position = verts[i]; + workingSet.Add(r); + } + + var tris = mesh.triangles; + var triLength = tris.Length; + for (int i = 0; i < triLength; i += 3) + Face.AddFace(workingSet, tris, i); + + for (int i = 0; i < origNumVerts; i++) + workingSet[i].AssignLinearPosition(); + + + /********************************* + * * + * Simplify mesh! * + * * + ********************************/ + + HashSet candidates; + HashSet nextCandidates = new HashSet(); + + foreach (Vertice v in workingSet) if (!v.IsStatic) + nextCandidates.Add(v); + + while (nextCandidates.Count != 0) + { + candidates = nextCandidates; + nextCandidates = new HashSet(); + foreach (Vertice a in candidates) + { + if (a.edges != null) foreach (Edge ac in a.edges) + { + Vertice c; + if (a.CanFollow(ac, out c)) + { + foreach (Face f in ac.faces) + Edge.Collapse(f.GetOpposite(c), f.GetOpposite(a), f); + foreach (Edge edge_of_a in a.edges) + { + if (edge_of_a != ac) + { + var o = edge_of_a.GetOpposite(a); + if (!o.IsStatic) nextCandidates.Add(o); + edge_of_a.Reconnect(a, c); + } + } + if (!c.IsStatic) nextCandidates.Add(c); + + c.DisconnectFrom(ac); + a.Disconnect(); + ac.DisconnectIncludingFaces(); + break; + } + } + } + } + + var simplifiedVerts = new List(); + foreach (Vertice v in workingSet) if (v.edges != null) + simplifiedVerts.Add(v); + + var simplifiedNumVerts = simplifiedVerts.Count; + var newPositions = new Vector3[simplifiedNumVerts]; + //var resultColors = new Color[simplifiedNumVerts]; + for (int i = 0; i < simplifiedNumVerts; i++) + { + simplifiedVerts[i].finalIndex = i; + newPositions[i] = simplifiedVerts[i].position; + } + + var resultTris = new List(); + var triSet = new HashSet(); + foreach (Vertice v in simplifiedVerts) + { + foreach (Edge e in v.edges) + { + foreach (Face f in e.faces) if (!triSet.Contains(f)) + { + triSet.Add(f); + f.GetIndexes(resultTris); + } + } + } + + mesh.Clear(); + mesh.vertices = newPositions; + mesh.triangles = resultTris.ToArray(); + Array.Clear(mesh.uv, 0, mesh.uv.Length); + + Vector3[] oldVerts = mesh.vertices; + int[] triangles = mesh.triangles; + Vector3[] vertices = new Vector3[triangles.Length]; + for (int i = 0; i < triangles.Length; i++) + { + vertices[i] = oldVerts[triangles[i]]; + triangles[i] = i; + } + + + mesh.vertices = vertices; + mesh.triangles = triangles; + mesh.RecalculateBounds(); + mesh.RecalculateNormals(); + mesh.Optimize(); + + Debug.LogFormat("Simplify vert count: {0} vs. {1}", simplifiedNumVerts, origNumVerts); + } + + private class Vertice + { + public List edges = new List(); + public Vector3 position; + + /// A cache used for identifying a vertice during mesh reconstruction. + public int finalIndex; + + /// + /// - Null if vertice is internal in a plane + /// - A non-zero vector if vertice is internal in a line + /// - Vector3.zero otherwise. + /// + public Vector3? linearPosition; + + public void AssignLinearPosition() + { + for (int i = 0; i < edges.Count; i++) + { + var edge = edges[i]; + if (!edge.HasEqualPlanes()) + { + if (linearPosition == null) + linearPosition = edge.vertices[1].position - edge.vertices[0].position; + else if (!edge.IsParallel(linearPosition)) + { + linearPosition = Vector3.zero; + break; + } + } + } + } + + public bool IsStatic { + get { + return linearPosition == Vector3.zero; + } + } + + public Edge GetExistingConnectingEdge(Vertice v) + { + foreach (Edge e in edges) + { + if (e.vertices[0] == this && e.vertices[1] == v) return e; + if (e.vertices[1] == this && e.vertices[0] == v) return e; + } + return null; + } + + public Edge GetConnectingEdge(Vertice v) + { + Edge result = GetExistingConnectingEdge(v); + if (result == null) + { + result = new Edge(this, v); + edges.Add(result); + v.edges.Add(result); + } + return result; + } + + /// When collapsing an edge a->c, the linear space must + /// be respected, and all faces, not connected with a->c, + /// must not flip. + /// + public bool CanFollow(Edge transportEdge, out Vertice opposite) + { + if (IsStatic) { opposite = default(Vertice); return false; } + if (linearPosition != null && !transportEdge.IsParallel(linearPosition)) { opposite = default(Vertice); return false; } + + var localTris = new HashSet(); + foreach (Edge e in edges) foreach (Face f in e.faces) + localTris.Add(f); + + localTris.ExceptWith(transportEdge.faces); + + opposite = transportEdge.GetOpposite(this); + var targetPos = opposite.position; + var lTriEnum = localTris.GetEnumerator(); + try + { + while (lTriEnum.MoveNext()) + if (lTriEnum.Current.MoveWouldFlip(this, targetPos)) + return false; + } + finally { lTriEnum.Dispose(); } + return true; + } + + public void DisconnectFrom(Edge e) + { + edges.Remove(e); + } + + public void Disconnect() + { + edges.Clear(); + edges = null; + } + + } + + private class Edge + { + public List vertices; + public List faces; + + public static void Collapse(Edge moved, Edge target, Face f) + { + Face faceOutsideMoved; + try { faceOutsideMoved = moved.GetOpposite(f); } + catch (Exception e) + { + throw new Exception(e.Message + "\n" + moved.vertices[0].position.ToString() + " <--> " + moved.vertices[1].position.ToString()); + } + faceOutsideMoved.Replace(moved, target); + target.Replace(f, faceOutsideMoved); + foreach (Vertice v in moved.vertices) + { + v.edges.Remove(moved); + } + } + + public Edge(Vertice v0, Vertice v1) + { + vertices = new List(2); + vertices.Add(v0); + vertices.Add(v1); + faces = new List(2); + } + + public Vertice GetOpposite(Vertice v) + { + var v0 = vertices[0]; + return v != v0 ? v0 : vertices[1]; + } + + public Face GetOpposite(Face v) + { + if (faces.Count != 2) throw new Exception("Collapsing an edge with only 1 face into another. This is not supported."); + var face0 = faces[0]; + return face0 == v ? faces[1] : face0; + } + + public bool HasEqualPlanes() + { + if (faces.Count != 2) return false; + var f0 = faces[0]; + var f0e0 = faces[0].edges[0]; + + var f1 = faces[1]; + var f1e0 = faces[1].edges[0]; + + var e0 = f0e0 != this ? f0e0 : f0.edges[1]; + var e1 = f1e0 != this ? f1e0 : f1.edges[1]; + + var v0 = vertices[1].position - vertices[0].position; + var v1 = e0.vertices[1].position - e0.vertices[0].position; + var v2 = e1.vertices[1].position - e1.vertices[0].position; + + var n0 = Vector3.Cross(v0, v1); + + var dot = Vector3.Dot(n0, v2); + return -5e-3 < dot && dot < 5e-3; + } + + public void Replace(Face oldFace, Face newFace) + { + for (int j = 0; j < faces.Count; j++) + { + if (faces[j] == oldFace) + { + faces[j] = newFace; + return; + } + } + } + + public void Reconnect(Vertice oldVertice, Vertice newVertice) + { + if (vertices[0] == oldVertice) vertices[0] = newVertice; + else vertices[1] = newVertice; + newVertice.edges.Add(this); + } + + public bool Contains(Vertice v) + { + return v == vertices[0] || v == vertices[1]; + } + + public bool IsParallel(Vector3? nv) + { + var v0 = vertices[0].position; + var v1 = vertices[1].position; + float cross = Vector3.Cross(v1 - v0, nv.Value).sqrMagnitude; + return -5e-6f < cross && cross < 5e-6f; + } + + public void DisconnectIncludingFaces() + { + vertices.Clear(); + vertices = null; + foreach (Face f in faces) + f.Disconnect(); + faces.Clear(); + faces = null; + } + } + + private class Face + { + public Edge[] edges; + + /* + * Edge between v0 and v1 + * Edge between v0 and v2 + * Edge between v1 and v2 + */ + private Face(Edge e0, Edge e1, Edge e2) + { + edges = new Edge[] { e0, e1, e2 }; + } + + /* + * List of vertices, in the same order as 'verts' from the mesh. + * The tris array from the mesh. + * The index of the first vertex in this triangle. + */ + public static void AddFace(List allVertices, int[] tris, int triIndex) + { + var v0 = allVertices[tris[triIndex + 0]]; + var v1 = allVertices[tris[triIndex + 1]]; + var v2 = allVertices[tris[triIndex + 2]]; + + var e0 = v0.GetConnectingEdge(v1); + var e1 = v0.GetConnectingEdge(v2); + var e2 = v1.GetConnectingEdge(v2); + + var face = new Face(e0, e1, e2); + + e0.faces.Add(face); + e1.faces.Add(face); + e2.faces.Add(face); + } + + public Edge GetOpposite(Vertice v) + { + Edge e0, e1; + if (!(e0 = edges[0]).Contains(v)) return e0; + if (!(e1 = edges[1]).Contains(v)) return e1; + return edges[2]; + } + + public Vertice GetOpposite(Edge o) + { + var o0 = o.vertices[0]; + var o1 = o.vertices[1]; + for (int i = 0; i < 3; i++) + { // Will never reach 3 because there will be an unequal vertice before the third edge + Edge e = edges[i]; + Vertice e0 = e.vertices[0]; + if (e0 != o0 && e0 != o1) return e0; + Vertice e1 = e.vertices[1]; + if (e1 != o0 && e1 != o1) return e1; + } + throw new Exception("A face seems to have three edges that all share a vertice with a given edge."); + } + + public void Replace(Edge oldEdge, Edge newEdge) + { + if (edges[0] == oldEdge) edges[0] = newEdge; + else if (edges[1] == oldEdge) edges[1] = newEdge; + else edges[2] = newEdge; + } + + public bool MoveWouldFlip(Vertice v, Vector3 p) + { + Edge oppositeEdge = GetOpposite(v); + var ov0 = oppositeEdge.vertices[0].position; + var ov = oppositeEdge.vertices[1].position - ov0; + var ot = p - ov0; + var ct = v.position - ov0; + + var cross0 = Vector3.Cross(ot, ov); + var c0SqrMagnitude = cross0.sqrMagnitude; + if (c0SqrMagnitude < 0.0001f) return true; + + var cross1 = Vector3.Cross(ct, ov); + var c1SqrMagnitude = cross1.sqrMagnitude; + if (c1SqrMagnitude < 0.0001f) return true; + + if (Mathf.Sign(Vector3.Dot(cross0, cross1)) < 0f) return true; + + return false; + } + + /* + * Adds the finalIndex for the verts in order: v0, v1, v2. + */ + public void GetIndexes(List results) + { + results.Add(GetOpposite(edges[2]).finalIndex); + results.Add(GetOpposite(edges[1]).finalIndex); + results.Add(GetOpposite(edges[0]).finalIndex); + } + + public void Disconnect() + { + edges = null; + } + } +} \ No newline at end of file diff --git a/Packages/Floorplan-2.0/Scripts/MeshColliderTools.cs.meta b/Packages/Floorplan-2.0/Scripts/MeshColliderTools.cs.meta new file mode 100644 index 00000000..2af739e2 --- /dev/null +++ b/Packages/Floorplan-2.0/Scripts/MeshColliderTools.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: bb70efa811894a9439ee60d4e6cf4c6e +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/Floorplan-2.0/Scripts/MeshCombiner.cs b/Packages/Floorplan-2.0/Scripts/MeshCombiner.cs new file mode 100644 index 00000000..093d86d7 --- /dev/null +++ b/Packages/Floorplan-2.0/Scripts/MeshCombiner.cs @@ -0,0 +1,298 @@ +using UnityEngine; +using System.Collections; +using System.Linq; +using System.Collections.Generic; +using UnityEditor.UI; + +public class MeshCombiner : MonoBehaviour +{ + GameObject wallMesh; + GameObject floorMesh; + public void Awake() + { + + } + + private void Start() + { + wallMesh = new GameObject("WallMesh", typeof(MeshFilter), typeof(Renderer)); + floorMesh = new GameObject("FloorMesh", typeof(MeshFilter), typeof(Renderer)); + print(transform.childCount); + for (int i = transform.childCount - 1; i >= 0; --i) + { + Transform child = transform.GetChild(i); + if (child.name == "Floor") + child.SetParent(floorMesh.transform, true); + else if (child.name == "Walls") + child.SetParent(wallMesh.transform, true); + } + wallMesh.transform.parent = transform; + floorMesh.transform.parent = transform; + + CombineWalls(); + CombineFloor(); + ClearChildren(floorMesh.transform); + ClearChildren(wallMesh.transform); + SplitMesh(floorMesh.GetComponent()); + SplitMesh(wallMesh.GetComponent()); + + for (int i = 0; i < floorMesh.transform.childCount; i++) + { + Simplify(floorMesh.transform.GetChild(i).GetComponent()); + } + for (int i = 0; i < wallMesh.transform.childCount; i++) + { + Simplify(wallMesh.transform.GetChild(i).GetComponent()); + } + } + + void ClearChildren(Transform t) + { + for(int i=0; i(); + filter.mesh=mf.mesh.GetSubmesh(i); + Renderer r = gO.AddComponent(); + r.material = mf.gameObject.GetComponent().materials[i]; + MeshCollider c = gO.AddComponent(); + c.sharedMesh = filter.mesh; + } + Destroy(mf.gameObject.GetComponent()); + Destroy(mf.gameObject.GetComponent()); + } + + private void CombineWalls() + { + Vector3 basePosition = transform.position; + Quaternion baseRotation = transform.rotation; + transform.position = Vector3.zero; + transform.rotation = Quaternion.identity; + + + + ArrayList materials = new ArrayList(); + ArrayList combineInstanceArrays = new ArrayList(); + MeshFilter[] meshFilters = wallMesh.GetComponentsInChildren(); + + //Linq solution to make sure we don't combine any of the doors(a door is easily identifiable by it's rigidbody component, so we look for that). + meshFilters = meshFilters.Where((source, index) => !(source.transform.name == "FloorMesh" || source.transform.name == "WallMesh" || source.transform.GetComponent() || source.transform.GetComponentInParent())).ToArray(); + foreach (MeshFilter meshFilter in meshFilters) + { + MeshRenderer meshRenderer = meshFilter.GetComponent(); + if (!meshRenderer || + !meshFilter.sharedMesh || + meshRenderer.sharedMaterials.Length != meshFilter.sharedMesh.subMeshCount) + { + print(meshFilter.gameObject.name); + continue; + } + + for (int s = 0; s < meshFilter.sharedMesh.subMeshCount; s++) + { + if (meshRenderer.sharedMaterials[s]){ + int materialArrayIndex = Contains(materials, meshRenderer.sharedMaterials[s].name); + if (materialArrayIndex == -1) + { + materials.Add(meshRenderer.sharedMaterials[s]); + materialArrayIndex = materials.Count - 1; + } + combineInstanceArrays.Add(new ArrayList()); + + CombineInstance combineInstance = new CombineInstance(); + combineInstance.transform = meshRenderer.transform.localToWorldMatrix; + combineInstance.subMeshIndex = s; + combineInstance.mesh = meshFilter.sharedMesh; + (combineInstanceArrays[materialArrayIndex] as ArrayList).Add(combineInstance); + } + } + } + + // Get / Create mesh filter & renderer + MeshFilter meshFilterCombine = wallMesh.GetComponent(); + if (meshFilterCombine == null) + { + meshFilterCombine = wallMesh.AddComponent(); + } + MeshRenderer meshRendererCombine = gameObject.GetComponent(); + if (meshRendererCombine == null) + { + meshRendererCombine = wallMesh.AddComponent(); + } + + // Combine by material index into per-material meshes + // also, Create CombineInstance array for next step + Mesh[] meshes = new Mesh[materials.Count]; + CombineInstance[] combineInstances = new CombineInstance[materials.Count]; + + for (int m = 0; m < materials.Count; m++) + { + CombineInstance[] combineInstanceArray = (combineInstanceArrays[m] as ArrayList).ToArray(typeof(CombineInstance)) as CombineInstance[]; + meshes[m] = new Mesh(); + meshes[m].CombineMeshes(combineInstanceArray, true, true); + + combineInstances[m] = new CombineInstance(); + combineInstances[m].mesh = meshes[m]; + combineInstances[m].subMeshIndex = 0; + + } + + // Combine into one + meshFilterCombine.sharedMesh = new Mesh(); + meshFilterCombine.sharedMesh.CombineMeshes(combineInstances, false, false); + + // Destroy other meshes + foreach (Mesh oldMesh in meshes) + { + oldMesh.Clear(); + DestroyImmediate(oldMesh); + } + + // Assign materials + Material[] materialsArray = materials.ToArray(typeof(Material)) as Material[]; + meshRendererCombine.materials = materialsArray; + + foreach (MeshFilter meshFilter in meshFilters) + { + + if (!meshFilter || meshFilter.transform.GetComponent() || meshFilter.transform.GetComponentInParent() || meshFilter.transform.GetComponentInChildren()) + continue; + print(meshFilter.gameObject.transform.parent.name); + DestroyImmediate(meshFilter.gameObject.transform.parent.gameObject); + } + wallMesh.transform.position = basePosition; + wallMesh.transform.rotation = baseRotation; + wallMesh.AddComponent().sharedMesh = wallMesh.GetComponent().sharedMesh; + } + private void CombineFloor() + { + Vector3 basePosition = transform.position; + Quaternion baseRotation = transform.rotation; + transform.position = Vector3.zero; + transform.rotation = Quaternion.identity; + + + + ArrayList materials = new ArrayList(); + ArrayList combineInstanceArrays = new ArrayList(); + MeshFilter[] meshFilters = floorMesh.GetComponentsInChildren(); + + //Linq solution to make sure we don't combine any of the doors(a door is easily identifiable by it's rigidbody component, so we look for that). + meshFilters = meshFilters.Where((source, index) => !(source.transform.name=="FloorMesh" || source.transform.name=="WallMesh" || source.transform.GetComponent() || source.transform.GetComponentInParent())).ToArray(); + foreach (MeshFilter meshFilter in meshFilters) + { + MeshRenderer meshRenderer = meshFilter.GetComponent(); + if (!meshRenderer || + !meshFilter.sharedMesh || + meshRenderer.sharedMaterials.Length != meshFilter.sharedMesh.subMeshCount) + { + continue; + } + + for (int s = 0; s < meshFilter.sharedMesh.subMeshCount; s++) + { + if (meshRenderer.sharedMaterials[s]) + { + int materialArrayIndex = Contains(materials, meshRenderer.sharedMaterials[s].name); + if (materialArrayIndex == -1) + { + materials.Add(meshRenderer.sharedMaterials[s]); + materialArrayIndex = materials.Count - 1; + } + combineInstanceArrays.Add(new ArrayList()); + + CombineInstance combineInstance = new CombineInstance(); + combineInstance.transform = meshRenderer.transform.localToWorldMatrix; + combineInstance.subMeshIndex = s; + combineInstance.mesh = meshFilter.sharedMesh; + (combineInstanceArrays[materialArrayIndex] as ArrayList).Add(combineInstance); + } + } + } + + // Get / Create mesh filter & renderer + MeshFilter meshFilterCombine = floorMesh.GetComponent(); + if (meshFilterCombine == null) + { + meshFilterCombine = floorMesh.AddComponent(); + } + MeshRenderer meshRendererCombine = gameObject.GetComponent(); + if (meshRendererCombine == null) + { + meshRendererCombine = floorMesh.AddComponent(); + } + + // Combine by material index into per-material meshes + // also, Create CombineInstance array for next step + Mesh[] meshes = new Mesh[materials.Count]; + CombineInstance[] combineInstances = new CombineInstance[materials.Count]; + + for (int m = 0; m < materials.Count; m++) + { + CombineInstance[] combineInstanceArray = (combineInstanceArrays[m] as ArrayList).ToArray(typeof(CombineInstance)) as CombineInstance[]; + meshes[m] = new Mesh(); + meshes[m].CombineMeshes(combineInstanceArray, true, true); + + combineInstances[m] = new CombineInstance(); + combineInstances[m].mesh = meshes[m]; + combineInstances[m].subMeshIndex = 0; + } + + // Combine into one + meshFilterCombine.sharedMesh = new Mesh(); + meshFilterCombine.sharedMesh.CombineMeshes(combineInstances, false, false); + + // Destroy other meshes + foreach (Mesh oldMesh in meshes) + { + oldMesh.Clear(); + DestroyImmediate(oldMesh); + } + + // Assign materials + Material[] materialsArray = materials.ToArray(typeof(Material)) as Material[]; + meshRendererCombine.materials = materialsArray; + + foreach (MeshFilter meshFilter in meshFilters) + { + + if (!meshFilter || meshFilter.transform.GetComponent() || meshFilter.transform.GetComponentInParent() || meshFilter.transform.GetComponentInChildren()) + continue; + DestroyImmediate(meshFilter.gameObject.transform.parent.gameObject); + } + floorMesh.transform.position = basePosition; + floorMesh.transform.rotation = baseRotation; + floorMesh.AddComponent().sharedMesh = floorMesh.GetComponent().sharedMesh; + } + + private int Contains(ArrayList searchList, string searchName) + { + for (int i = 0; i < searchList.Count; i++) + { + if (((Material)searchList[i]).name == searchName) + { + return i; + } + } + return -1; + } +} \ No newline at end of file diff --git a/Packages/Floorplan-2.0/Scripts/MeshCombiner.cs.meta b/Packages/Floorplan-2.0/Scripts/MeshCombiner.cs.meta new file mode 100644 index 00000000..66f7fb55 --- /dev/null +++ b/Packages/Floorplan-2.0/Scripts/MeshCombiner.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 9d1dd59961254a34585afe7927f04a02 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/Floorplan-2.0/Scripts/MeshExtension.cs b/Packages/Floorplan-2.0/Scripts/MeshExtension.cs new file mode 100644 index 00000000..a595a87a --- /dev/null +++ b/Packages/Floorplan-2.0/Scripts/MeshExtension.cs @@ -0,0 +1,104 @@ +using UnityEngine; +using System.Collections.Generic; + +public static class MeshExtension +{ + private class Vertices + { + List verts = null; + List uv1 = null; + List uv2 = null; + List uv3 = null; + List uv4 = null; + List normals = null; + List tangents = null; + List colors = null; + List boneWeights = null; + + public Vertices() + { + verts = new List(); + } + public Vertices(Mesh aMesh) + { + verts = CreateList(aMesh.vertices); + uv1 = CreateList(aMesh.uv); + uv2 = CreateList(aMesh.uv2); + uv3 = CreateList(aMesh.uv3); + uv4 = CreateList(aMesh.uv4); + normals = CreateList(aMesh.normals); + tangents = CreateList(aMesh.tangents); + colors = CreateList(aMesh.colors32); + boneWeights = CreateList(aMesh.boneWeights); + } + + private List CreateList(T[] aSource) + { + if (aSource == null || aSource.Length == 0) + return null; + return new List(aSource); + } + private void Copy(ref List aDest, List aSource, int aIndex) + { + if (aSource == null) + return; + if (aDest == null) + aDest = new List(); + aDest.Add(aSource[aIndex]); + } + public int Add(Vertices aOther, int aIndex) + { + int i = verts.Count; + Copy(ref verts, aOther.verts, aIndex); + Copy(ref uv1, aOther.uv1, aIndex); + Copy(ref uv2, aOther.uv2, aIndex); + Copy(ref uv3, aOther.uv3, aIndex); + Copy(ref uv4, aOther.uv4, aIndex); + Copy(ref normals, aOther.normals, aIndex); + Copy(ref tangents, aOther.tangents, aIndex); + Copy(ref colors, aOther.colors, aIndex); + Copy(ref boneWeights, aOther.boneWeights, aIndex); + return i; + } + public void AssignTo(Mesh aTarget) + { + if (verts.Count > 65535) + aTarget.indexFormat = UnityEngine.Rendering.IndexFormat.UInt32; + aTarget.SetVertices(verts); + if (uv1 != null) aTarget.SetUVs(0, uv1); + if (uv2 != null) aTarget.SetUVs(1, uv2); + if (uv3 != null) aTarget.SetUVs(2, uv3); + if (uv4 != null) aTarget.SetUVs(3, uv4); + if (normals != null) aTarget.SetNormals(normals); + if (tangents != null) aTarget.SetTangents(tangents); + if (colors != null) aTarget.SetColors(colors); + if (boneWeights != null) aTarget.boneWeights = boneWeights.ToArray(); + } + } + + public static Mesh GetSubmesh(this Mesh aMesh, int aSubMeshIndex) + { + if (aSubMeshIndex < 0 || aSubMeshIndex >= aMesh.subMeshCount) + return null; + int[] indices = aMesh.GetTriangles(aSubMeshIndex); + Vertices source = new Vertices(aMesh); + Vertices dest = new Vertices(); + Dictionary map = new Dictionary(); + int[] newIndices = new int[indices.Length]; + for (int i = 0; i < indices.Length; i++) + { + int o = indices[i]; + int n; + if (!map.TryGetValue(o, out n)) + { + n = dest.Add(source, o); + map.Add(o, n); + } + newIndices[i] = n; + } + Mesh m = new Mesh(); + dest.AssignTo(m); + m.triangles = newIndices; + return m; + } +} \ No newline at end of file diff --git a/Packages/Floorplan-2.0/Scripts/MeshExtension.cs.meta b/Packages/Floorplan-2.0/Scripts/MeshExtension.cs.meta new file mode 100644 index 00000000..7e9b182b --- /dev/null +++ b/Packages/Floorplan-2.0/Scripts/MeshExtension.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 9cfee6f65c36c224ab66a34ea32ca686 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/Floorplan-2.0/Scripts/com.alexism.floorplacom.alexism.floorplan.asmdef b/Packages/Floorplan-2.0/Scripts/com.alexism.floorplacom.alexism.floorplan.asmdef new file mode 100644 index 00000000..a598372b --- /dev/null +++ b/Packages/Floorplan-2.0/Scripts/com.alexism.floorplacom.alexism.floorplan.asmdef @@ -0,0 +1,17 @@ +{ + "name": "com.alexism.floorplacom.alexism.floorplan", + "references": [ + "GUID:6055be8ebefd69e48b49212b09b47b2f", + "GUID:3a9781db4804a9945b9883f3a7c46d45", + "GUID:c4df6f69b1bd3d542a0bd5e003678751" + ], + "includePlatforms": [], + "excludePlatforms": [], + "allowUnsafeCode": false, + "overrideReferences": false, + "precompiledReferences": [], + "autoReferenced": true, + "defineConstraints": [], + "versionDefines": [], + "noEngineReferences": false +} \ No newline at end of file diff --git a/Packages/Floorplan-2.0/Scripts/com.alexism.floorplacom.alexism.floorplan.asmdef.meta b/Packages/Floorplan-2.0/Scripts/com.alexism.floorplacom.alexism.floorplan.asmdef.meta new file mode 100644 index 00000000..722b84ea --- /dev/null +++ b/Packages/Floorplan-2.0/Scripts/com.alexism.floorplacom.alexism.floorplan.asmdef.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 12d6d9ac7109b014bbe1f60624409612 +AssemblyDefinitionImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/Floorplan-2.0/Scripts/floorplan.cs b/Packages/Floorplan-2.0/Scripts/floorplan.cs new file mode 100644 index 00000000..aeb80730 --- /dev/null +++ b/Packages/Floorplan-2.0/Scripts/floorplan.cs @@ -0,0 +1,115 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEditor; +using UnityEngine; +using alexism.Floorplan.Core.ScriptableObjects; +using alexism.Floorplan.Core.Components; +using alexism.Floorplan.Core.Enums; +using System.Linq; + + +namespace alexism.Floorplan.Core +{ + [RequireComponent(typeof(Grid))] + [ExecuteInEditMode] + + public class floorplan : MonoBehaviour + { + + + public Bounds bounds; + [HideInInspector] + public GameObject geometry; + + private void Awake() + { + if (!geometry) + geometry = new GameObject("FloorPlanGeometry"); + //geometry = GameObject.Find("New Floorplan Geometry"); + } + + bool toolActive; + [SerializeField] + public floorplanTileset tileset; + + public Material[] wallMaterials=new Material[100]; + + public List selected = new List(4) { -1,-1,-1,-1}; + + [Space(15)] + Vector3 lastHandlePosition; + Vector3 snapLastHandlePosition; + Vector3 handlePosition; + Vector3 lastTileDelta; + Vector3 tileDelta; + GameObject geometryRoot; + [HideInInspector] + public float tileSize = 2f; + Color gizmoColor = Color.red; + + public GameObject[] getTilesFromType(TileTypes type) + { + switch (type) + { + case TileTypes.Wall: + return tileset.wallTiles; + case TileTypes.Pillar: + return tileset.pillarTiles; + case TileTypes.Floor: + return tileset.floorTiles; + } + return null; + } + + private void OnDrawGizmosSelected() + { + + } + + + + public TileTypes getTypeFromTile(GameObject tile) + { + TileTypes type = TileTypes.None; + if (tileset.wallTiles.ToList().Find(x => x == tile)) + type = TileTypes.Wall; + if (tileset.floorTiles.ToList().Find(x => x == tile)) + type = TileTypes.Floor; + if (tileset.pillarTiles.ToList().Find(x => x == tile)) + type = TileTypes.Pillar; + return type; + } + + + void OnEnable() + { + print("Selected: " + selected.Count); + snapLastHandlePosition = transform.position; + } + + void Start() + { + snapLastHandlePosition = transform.position; + geometryRoot = geometry; + } + + void Update() + { + } + + private void OnDrawGizmos() + { + } + + public GameObject createInstance(GameObject instanceType, Vector3 spawnPosition, Quaternion spawnRotation) + { + GameObject instance = PrefabUtility.InstantiatePrefab(instanceType) as GameObject; + instance.transform.position = spawnPosition; + instance.transform.rotation = spawnRotation; + instance.transform.parent = geometry.transform; + instance.GetComponent().tileset = tileset; + instance.name = instanceType.name; + return instance.transform.GetChild(0).gameObject; + } + } +} \ No newline at end of file diff --git a/Packages/Floorplan-2.0/Scripts/floorplan.cs.meta b/Packages/Floorplan-2.0/Scripts/floorplan.cs.meta new file mode 100644 index 00000000..2dfaaad9 --- /dev/null +++ b/Packages/Floorplan-2.0/Scripts/floorplan.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: b9106951e7a6bcb4eae8310b1362189a +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: + - tileset: {fileID: 11400000, guid: 04655de02232d0642ad32b971b2e2a91, type: 2} + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/Floorplan-2.0/Scripts/floorplanComponent.cs b/Packages/Floorplan-2.0/Scripts/floorplanComponent.cs new file mode 100644 index 00000000..0aa5c03a --- /dev/null +++ b/Packages/Floorplan-2.0/Scripts/floorplanComponent.cs @@ -0,0 +1,136 @@ +using System.Collections; +using System.Collections.Generic; +using System.Linq; +using UnityEditor; +using UnityEngine; +using alexism.Floorplan.Core.ScriptableObjects; +using alexism.Floorplan.Core.Enums; + +namespace alexism.Floorplan.Core.Components +{ + [ExecuteInEditMode] + [SelectionBase] + + public class floorplanComponent : MonoBehaviour + { + public floorplanTileset tileset; + public List stuff; + Vector3 offset; + public TileTypes tileType=TileTypes.Wall; + void Start() { + if (EditorApplication.isPlaying) + return; + Renderer r = transform.GetChild(0).GetComponent(); + offset = r.bounds.center - new Vector3(0, r.bounds.size.y / 2.4f); + stuff = new List(); +#if UNITY_EDITOR + if (Physics.CheckSphere(offset, .1f) && tileType==TileTypes.Floor) + { + + Collider[] overlaps = Physics.OverlapSphere(offset, .1f); + foreach (Collider overlap in overlaps) + { + if (overlap.transform.root == transform.root && !isChild(overlap.transform, transform)) + { + print("Destroyed overlap: " + overlap.transform.name); + DestroyImmediate(overlap.transform.parent.gameObject); + } + } + } +#endif + } + + private void OnEnable() + { + //if (EditorApplication.isPlaying) + // return; + //if (Physics.CheckSphere(offset, .1f)) + //{ + + // Collider[] overlaps = Physics.OverlapSphere(offset, .1f); + // foreach (Collider overlap in overlaps) + // { + // if (overlap.transform.root == transform.root && !isChild(overlap.transform, transform)) + // { + // print("Destroyed overlap: " + overlap.transform.name); + // overlap.transform.parent.position += new Vector3(0, 10, 0); + // } + // } + //} + } + + bool isChild(Transform c,Transform p) + { + bool t = false; + foreach(Transform child in p) + { + if (child == c) + { + t = true; + break; + } + else + { + if (child.childCount > 0) + { + t=isChild(c, child); + } + } + } + return t; + } + + public GameObject[] getTilesFromType(TileTypes type) + { + switch (type) + { + case TileTypes.Wall: + return tileset.wallTiles; + case TileTypes.Pillar: + return tileset.pillarTiles; + case TileTypes.Floor: + return tileset.floorTiles; + } + return null; + } + + public TileTypes getTypeFromTile(GameObject tile) + { + TileTypes type=TileTypes.None; + if(tileset.wallTiles.ToList().Find(x => x==tile)) + type = TileTypes.Wall; + if(tileset.floorTiles.ToList().Find(x => x==tile)) + type = TileTypes.Floor; + if(tileset.pillarTiles.ToList().Find(x => x==tile)) + type = TileTypes.Pillar; + return type; + } + + public void ChangeComponentType(GameObject newType) + { + + // GameObject newInstance = GameObject.Instantiate (newType, transform.position, transform.rotation); + GameObject newInstance = PrefabUtility.InstantiatePrefab(newType) as GameObject; + newInstance.transform.position = this.transform.position; + newInstance.transform.rotation = this.transform.rotation; + newInstance.transform.localScale = this.transform.localScale; + newInstance.transform.parent = this.transform.parent; + newInstance.GetComponent().tileset = tileset; + Renderer newRenderer = newInstance.transform.GetChild(0).GetComponent(); + Renderer oldRenderer = transform.GetChild(0).GetComponent(); + if (newRenderer.sharedMaterials.Length > 0) + { + newInstance.transform.GetChild(0).GetComponent().materials = transform.GetChild(0).GetComponent().sharedMaterials; + } + else + { + newInstance.transform.GetChild(0).GetComponent().material = transform.GetChild(0).GetComponent().sharedMaterial; + } + GameObject.DestroyImmediate(this.gameObject); + + } + private void OnDrawGizmos() + { + } + } +} \ No newline at end of file diff --git a/Packages/Floorplan-2.0/Scripts/floorplanComponent.cs.meta b/Packages/Floorplan-2.0/Scripts/floorplanComponent.cs.meta new file mode 100644 index 00000000..bdbed34c --- /dev/null +++ b/Packages/Floorplan-2.0/Scripts/floorplanComponent.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: d933d9bbd3e611d41a488afaa8ac3106 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/Floorplan-2.0/Scripts/floorplanTileset.cs b/Packages/Floorplan-2.0/Scripts/floorplanTileset.cs new file mode 100644 index 00000000..396f949e --- /dev/null +++ b/Packages/Floorplan-2.0/Scripts/floorplanTileset.cs @@ -0,0 +1,14 @@ +using System.Collections; +using UnityEngine; +using alexism.Floorplan.Core.Enums; + +namespace alexism.Floorplan.Core.ScriptableObjects +{ + [CreateAssetMenu(fileName = "New Floorplan Tileset", menuName = "Floorplan Tileset")] + public class floorplanTileset : ScriptableObject + { + public GameObject[] floorTiles; + public GameObject[] wallTiles; + public GameObject[] pillarTiles; + } +} \ No newline at end of file diff --git a/Packages/Floorplan-2.0/Scripts/floorplanTileset.cs.meta b/Packages/Floorplan-2.0/Scripts/floorplanTileset.cs.meta new file mode 100644 index 00000000..5e722126 --- /dev/null +++ b/Packages/Floorplan-2.0/Scripts/floorplanTileset.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 8441b0125f23fb644b2d1fbd1835ee18 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/Floorplan-2.0/Static.meta b/Packages/Floorplan-2.0/Static.meta new file mode 100644 index 00000000..60b21619 --- /dev/null +++ b/Packages/Floorplan-2.0/Static.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 72f2b3ca417977c478c453ea0f2609a0 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/Floorplan-2.0/Static/GridUtilityEditor.cs b/Packages/Floorplan-2.0/Static/GridUtilityEditor.cs new file mode 100644 index 00000000..df567dbb --- /dev/null +++ b/Packages/Floorplan-2.0/Static/GridUtilityEditor.cs @@ -0,0 +1,571 @@ +using System; +using System.Collections; +using System.Collections.Generic; +using UnityEditor; +using UnityEngine; + +namespace alexism.Floorplan.Core.Static +{ + public static class GridEditorUtility + { + private const int k_GridGizmoVertexCount = 32000; + private const float k_GridGizmoDistanceFalloff = 50f; + + public static Vector3Int ClampToGrid(Vector3Int p, Vector2Int origin, Vector2Int gridSize) + { + return new Vector3Int( + Math.Max(Math.Min(p.x, origin.x + gridSize.x - 1), origin.x), + Math.Max(Math.Min(p.y, origin.y + gridSize.y - 1), origin.y), + p.z + ); + } + + public static Vector3 ScreenToLocal(Transform transform, Vector2 screenPosition) + { + return ScreenToLocal(transform, screenPosition, new Plane(transform.forward * -1f, transform.position)); + } + + public static Vector3 ScreenToLocal(Transform transform, Vector2 screenPosition, Plane plane) + { + Ray ray; + if (Camera.current.orthographic) + { + Vector2 screen = EditorGUIUtility.PointsToPixels(screenPosition); + screen.y = Screen.height - screen.y; + Vector3 cameraWorldPoint = Camera.current.ScreenToWorldPoint(screen); + ray = new Ray(cameraWorldPoint, Camera.current.transform.forward); + } + else + { + ray = HandleUtility.GUIPointToWorldRay(screenPosition); + } + + float result; + plane.Raycast(ray, out result); + Vector3 world = ray.GetPoint(result); + return transform.InverseTransformPoint(world); + } + + public static RectInt GetMarqueeRect(Vector2Int p1, Vector2Int p2) + { + return new RectInt( + Math.Min(p1.x, p2.x), + Math.Min(p1.y, p2.y), + Math.Abs(p2.x - p1.x) + 1, + Math.Abs(p2.y - p1.y) + 1 + ); + } + + public static BoundsInt GetMarqueeBounds(Vector3Int p1, Vector3Int p2) + { + return new BoundsInt( + Math.Min(p1.x, p2.x), + Math.Min(p1.y, p2.y), + Math.Min(p1.z, p2.z), + Math.Abs(p2.x - p1.x) + 1, + Math.Abs(p2.y - p1.y) + 1, + Math.Abs(p2.z - p1.z) + 1 + ); + } + + // http://ericw.ca/notes/bresenhams-line-algorithm-in-csharp.html + public static IEnumerable GetPointsOnLine(Vector2Int p1, Vector2Int p2) + { + int x0 = p1.x; + int y0 = p1.y; + int x1 = p2.x; + int y1 = p2.y; + + bool steep = Math.Abs(y1 - y0) > Math.Abs(x1 - x0); + if (steep) + { + int t; + t = x0; // swap x0 and y0 + x0 = y0; + y0 = t; + t = x1; // swap x1 and y1 + x1 = y1; + y1 = t; + } + if (x0 > x1) + { + int t; + t = x0; // swap x0 and x1 + x0 = x1; + x1 = t; + t = y0; // swap y0 and y1 + y0 = y1; + y1 = t; + } + int dx = x1 - x0; + int dy = Math.Abs(y1 - y0); + int error = dx / 2; + int ystep = (y0 < y1) ? 1 : -1; + int y = y0; + for (int x = x0; x <= x1; x++) + { + yield return new Vector2Int((steep ? y : x), (steep ? x : y)); + error = error - dy; + if (error < 0) + { + y += ystep; + error += dx; + } + } + } + + public static void DrawBatchedHorizontalLine(float x1, float x2, float y) + { + GL.Vertex3(x1, y, 0f); + GL.Vertex3(x2, y, 0f); + GL.Vertex3(x2, y + 1, 0f); + GL.Vertex3(x1, y + 1, 0f); + } + + public static void DrawBatchedVerticalLine(float y1, float y2, float x) + { + GL.Vertex3(x, y1, 0f); + GL.Vertex3(x, y2, 0f); + GL.Vertex3(x + 1, y2, 0f); + GL.Vertex3(x + 1, y1, 0f); + } + + public static void DrawBatchedLine(Vector3 p1, Vector3 p2) + { + GL.Vertex3(p1.x, p1.y, p1.z); + GL.Vertex3(p2.x, p2.y, p2.z); + } + + public static void DrawLine(Vector2 p1, Vector2 p2, Color color) + { + if (Event.current.type != EventType.Repaint) + return; + + GL.PushMatrix(); + GL.MultMatrix(GUI.matrix); + GL.Begin(GL.LINES); + GL.Color(color); + DrawBatchedLine(p1, p2); + GL.End(); + GL.PopMatrix(); + } + + public static void DrawBox(Rect r, Color color) + { + if (Event.current.type != EventType.Repaint) + return; + + GL.PushMatrix(); + GL.MultMatrix(GUI.matrix); + GL.Begin(GL.LINES); + GL.Color(color); + DrawBatchedLine(new Vector3(r.xMin, r.yMin, 0f), new Vector3(r.xMax, r.yMin, 0f)); + DrawBatchedLine(new Vector3(r.xMax, r.yMin, 0f), new Vector3(r.xMax, r.yMax, 0f)); + DrawBatchedLine(new Vector3(r.xMax, r.yMax, 0f), new Vector3(r.xMin, r.yMax, 0f)); + DrawBatchedLine(new Vector3(r.xMin, r.yMax, 0f), new Vector3(r.xMin, r.yMin, 0f)); + GL.End(); + GL.PopMatrix(); + } + + public static void DrawFilledBox(Rect r, Color color) + { + if (Event.current.type != EventType.Repaint) + return; + + GL.PushMatrix(); + GL.MultMatrix(GUI.matrix); + GL.Begin(GL.QUADS); + GL.Color(color); + GL.Vertex3(r.xMin, r.yMin, 0f); + GL.Vertex3(r.xMax, r.yMin, 0f); + GL.Vertex3(r.xMax, r.yMax, 0f); + GL.Vertex3(r.xMin, r.yMax, 0f); + GL.End(); + GL.PopMatrix(); + } + + public static void DrawGridMarquee(GridLayout gridLayout, BoundsInt area, Color color) + { + switch (gridLayout.cellLayout) + { + case GridLayout.CellLayout.Hexagon: + DrawSelectedHexGridArea(gridLayout, area, color); + break; + case GridLayout.CellLayout.Isometric: + case GridLayout.CellLayout.IsometricZAsY: + case GridLayout.CellLayout.Rectangle: + var cellStride = gridLayout.cellSize + gridLayout.cellGap; + var cellGap = Vector3.one; + if (!Mathf.Approximately(cellStride.x, 0f)) + { + cellGap.x = gridLayout.cellSize.x / cellStride.x; + } + if (!Mathf.Approximately(cellStride.y, 0f)) + { + cellGap.y = gridLayout.cellSize.y / cellStride.y; + } + + Vector3[] cellLocals = + { + gridLayout.CellToLocal(new Vector3Int(area.xMin, area.yMin, area.zMin)), + gridLayout.CellToLocalInterpolated(new Vector3(area.xMax - 1 + cellGap.x, area.yMin, area.zMin)), + gridLayout.CellToLocalInterpolated(new Vector3(area.xMax - 1 + cellGap.x, area.yMax - 1 + cellGap.y, area.zMin)), + gridLayout.CellToLocalInterpolated(new Vector3(area.xMin, area.yMax - 1 + cellGap.y, area.zMin)) + }; + + GL.PushMatrix(); + GL.MultMatrix(gridLayout.transform.localToWorldMatrix); + GL.Begin(GL.LINES); + GL.Color(color); + int i = 0; + + for (int j = cellLocals.Length - 1; i < cellLocals.Length; j = i++) + DrawBatchedLine(cellLocals[j], cellLocals[i]); + + GL.End(); + GL.PopMatrix(); + break; + } + } + + public static void DrawSelectedHexGridArea(GridLayout gridLayout, BoundsInt area, Color color) + { + int requiredVertices = 4 * (area.size.x + area.size.y) - 2; + if (requiredVertices < 0) + return; + Vector3[] cellLocals = new Vector3[requiredVertices]; + int horizontalCount = area.size.x * 2; + int verticalCount = area.size.y * 2 - 1; + int bottom = 0; + int top = horizontalCount + verticalCount + horizontalCount - 1; + int left = requiredVertices - 1; + int right = horizontalCount; + Vector3[] cellOffset = + { + Grid.Swizzle(gridLayout.cellSwizzle, new Vector3(0, gridLayout.cellSize.y / 2, area.zMin)), + Grid.Swizzle(gridLayout.cellSwizzle, new Vector3(gridLayout.cellSize.x / 2, gridLayout.cellSize.y / 4, area.zMin)), + Grid.Swizzle(gridLayout.cellSwizzle, new Vector3(gridLayout.cellSize.x / 2, -gridLayout.cellSize.y / 4, area.zMin)), + Grid.Swizzle(gridLayout.cellSwizzle, new Vector3(0, -gridLayout.cellSize.y / 2, area.zMin)), + Grid.Swizzle(gridLayout.cellSwizzle, new Vector3(-gridLayout.cellSize.x / 2, -gridLayout.cellSize.y / 4, area.zMin)), + Grid.Swizzle(gridLayout.cellSwizzle, new Vector3(-gridLayout.cellSize.x / 2, gridLayout.cellSize.y / 4, area.zMin)) + }; + // Fill Top and Bottom Vertices + for (int x = area.min.x; x < area.max.x; x++) + { + cellLocals[bottom++] = gridLayout.CellToLocal(new Vector3Int(x, area.min.y, area.zMin)) + cellOffset[4]; + cellLocals[bottom++] = gridLayout.CellToLocal(new Vector3Int(x, area.min.y, area.zMin)) + cellOffset[3]; + cellLocals[top--] = gridLayout.CellToLocal(new Vector3Int(x, area.max.y - 1, area.zMin)) + cellOffset[0]; + cellLocals[top--] = gridLayout.CellToLocal(new Vector3Int(x, area.max.y - 1, area.zMin)) + cellOffset[1]; + } + // Fill first Left and Right Vertices + cellLocals[left--] = gridLayout.CellToLocal(new Vector3Int(area.min.x, area.min.y, area.zMin)) + cellOffset[5]; + cellLocals[top--] = gridLayout.CellToLocal(new Vector3Int(area.max.x - 1, area.max.y - 1, area.zMin)) + cellOffset[2]; + // Fill Left and Right Vertices + for (int y = area.min.y + 1; y < area.max.y; y++) + { + cellLocals[left--] = gridLayout.CellToLocal(new Vector3Int(area.min.x, y, area.zMin)) + cellOffset[4]; + cellLocals[left--] = gridLayout.CellToLocal(new Vector3Int(area.min.x, y, area.zMin)) + cellOffset[5]; + } + for (int y = area.min.y; y < (area.max.y - 1); y++) + { + cellLocals[right++] = gridLayout.CellToLocal(new Vector3Int(area.max.x - 1, y, area.zMin)) + cellOffset[2]; + cellLocals[right++] = gridLayout.CellToLocal(new Vector3Int(area.max.x - 1, y, area.zMin)) + cellOffset[1]; + } + GL.PushMatrix(); + GL.MultMatrix(gridLayout.transform.localToWorldMatrix); + GL.Begin(GL.LINES); + GL.Color(color); + int i = 0; + for (int j = cellLocals.Length - 1; i < cellLocals.Length; j = i++) + { + DrawBatchedLine(cellLocals[j], cellLocals[i]); + } + GL.End(); + GL.PopMatrix(); + } + + public static void DrawGridGizmo(GridLayout gridLayout, Transform transform, Color color, ref Mesh gridMesh, ref Material gridMaterial) + { + // TODO: Hook this up with DrawGrid + if (Event.current.type != EventType.Repaint) + return; + + if (gridMesh == null) + gridMesh = GenerateCachedGridMesh(gridLayout, color); + + if (gridMaterial == null) + { + gridMaterial = (Material)EditorGUIUtility.LoadRequired("SceneView/GridGap.mat"); + } + + if (gridLayout.cellLayout == GridLayout.CellLayout.Hexagon) + { + gridMaterial.SetVector("_Gap", new Vector4(1f, 1f / 3f, 1f, 1f)); + gridMaterial.SetVector("_Stride", new Vector4(1f, 1f, 1f, 1f)); + } + else + { + gridMaterial.SetVector("_Gap", gridLayout.cellSize); + gridMaterial.SetVector("_Stride", gridLayout.cellGap + gridLayout.cellSize); + } + + gridMaterial.SetPass(0); + GL.PushMatrix(); + if (gridMesh.GetTopology(0) == MeshTopology.Lines) + GL.Begin(GL.LINES); + else + GL.Begin(GL.QUADS); + + Graphics.DrawMeshNow(gridMesh, transform.localToWorldMatrix); + GL.End(); + GL.PopMatrix(); + } + + public static Vector3 GetSpriteWorldSize(Sprite sprite) + { + if (sprite != null && sprite.rect.size.magnitude > 0f) + { + return new Vector3( + sprite.rect.size.x / sprite.pixelsPerUnit, + sprite.rect.size.y / sprite.pixelsPerUnit, + 1f + ); + } + return Vector3.one; + } + + private static Mesh GenerateCachedGridMesh(GridLayout gridLayout, Color color) + { + switch (gridLayout.cellLayout) + { + case GridLayout.CellLayout.Hexagon: + return GenerateCachedHexagonalGridMesh(gridLayout, color); + case GridLayout.CellLayout.Isometric: + case GridLayout.CellLayout.IsometricZAsY: + case GridLayout.CellLayout.Rectangle: + int min = k_GridGizmoVertexCount / -32; + int max = min * -1; + int numCells = max - min; + RectInt bounds = new RectInt(min, min, numCells, numCells); + + return GenerateCachedGridMesh(gridLayout, color, 0f, bounds, MeshTopology.Lines); + } + return null; + } + + public static Mesh GenerateCachedGridMesh(GridLayout gridLayout, Color color, float screenPixelSize, RectInt bounds, MeshTopology topology) + { + Mesh mesh = new Mesh(); + mesh.hideFlags = HideFlags.HideAndDontSave; + + int vertex = 0; + + int totalVertices = topology == MeshTopology.Quads ? + 8 * (bounds.size.x + bounds.size.y) : + 4 * (bounds.size.x + bounds.size.y); + + Vector3 horizontalPixelOffset = new Vector3(screenPixelSize, 0f, 0f); + Vector3 verticalPixelOffset = new Vector3(0f, screenPixelSize, 0f); + + Vector3[] vertices = new Vector3[totalVertices]; + Vector2[] uvs2 = new Vector2[totalVertices]; + + Vector3 cellStride = gridLayout.cellSize + gridLayout.cellGap; + Vector3Int minPosition = new Vector3Int(0, bounds.min.y, 0); + Vector3Int maxPosition = new Vector3Int(0, bounds.max.y, 0); + + Vector3 cellGap = Vector3.zero; + if (!Mathf.Approximately(cellStride.x, 0f)) + { + cellGap.x = gridLayout.cellSize.x / cellStride.x; + } + + for (int x = bounds.min.x; x < bounds.max.x; x++) + { + minPosition.x = x; + maxPosition.x = x; + + vertices[vertex + 0] = gridLayout.CellToLocal(minPosition); + vertices[vertex + 1] = gridLayout.CellToLocal(maxPosition); + uvs2[vertex + 0] = Vector2.zero; + uvs2[vertex + 1] = new Vector2(0f, cellStride.y * bounds.size.y); + if (topology == MeshTopology.Quads) + { + vertices[vertex + 2] = gridLayout.CellToLocal(maxPosition) + horizontalPixelOffset; + vertices[vertex + 3] = gridLayout.CellToLocal(minPosition) + horizontalPixelOffset; + uvs2[vertex + 2] = new Vector2(0f, cellStride.y * bounds.size.y); + uvs2[vertex + 3] = Vector2.zero; + } + vertex += topology == MeshTopology.Quads ? 4 : 2; + + vertices[vertex + 0] = gridLayout.CellToLocalInterpolated(minPosition + cellGap); + vertices[vertex + 1] = gridLayout.CellToLocalInterpolated(maxPosition + cellGap); + uvs2[vertex + 0] = Vector2.zero; + uvs2[vertex + 1] = new Vector2(0f, cellStride.y * bounds.size.y); + if (topology == MeshTopology.Quads) + { + vertices[vertex + 2] = gridLayout.CellToLocalInterpolated(maxPosition + cellGap) + horizontalPixelOffset; + vertices[vertex + 3] = gridLayout.CellToLocalInterpolated(minPosition + cellGap) + horizontalPixelOffset; + uvs2[vertex + 2] = new Vector2(0f, cellStride.y * bounds.size.y); + uvs2[vertex + 3] = Vector2.zero; + } + vertex += topology == MeshTopology.Quads ? 4 : 2; + } + + minPosition = new Vector3Int(bounds.min.x, 0, 0); + maxPosition = new Vector3Int(bounds.max.x, 0, 0); + cellGap = Vector3.zero; + if (!Mathf.Approximately(cellStride.y, 0f)) + { + cellGap.y = gridLayout.cellSize.y / cellStride.y; + } + + for (int y = bounds.min.y; y < bounds.max.y; y++) + { + minPosition.y = y; + maxPosition.y = y; + + vertices[vertex + 0] = gridLayout.CellToLocal(minPosition); + vertices[vertex + 1] = gridLayout.CellToLocal(maxPosition); + uvs2[vertex + 0] = Vector2.zero; + uvs2[vertex + 1] = new Vector2(cellStride.x * bounds.size.x, 0f); + if (topology == MeshTopology.Quads) + { + vertices[vertex + 2] = gridLayout.CellToLocal(maxPosition) + verticalPixelOffset; + vertices[vertex + 3] = gridLayout.CellToLocal(minPosition) + verticalPixelOffset; + uvs2[vertex + 2] = new Vector2(cellStride.x * bounds.size.x, 0f); + uvs2[vertex + 3] = Vector2.zero; + } + vertex += topology == MeshTopology.Quads ? 4 : 2; + + vertices[vertex + 0] = gridLayout.CellToLocalInterpolated(minPosition + cellGap); + vertices[vertex + 1] = gridLayout.CellToLocalInterpolated(maxPosition + cellGap); + uvs2[vertex + 0] = Vector2.zero; + uvs2[vertex + 1] = new Vector2(cellStride.x * bounds.size.x, 0f); + if (topology == MeshTopology.Quads) + { + vertices[vertex + 2] = gridLayout.CellToLocalInterpolated(maxPosition + cellGap) + verticalPixelOffset; + vertices[vertex + 3] = gridLayout.CellToLocalInterpolated(minPosition + cellGap) + verticalPixelOffset; + uvs2[vertex + 2] = new Vector2(cellStride.x * bounds.size.x, 0f); + uvs2[vertex + 3] = Vector2.zero; + } + vertex += topology == MeshTopology.Quads ? 4 : 2; + } + + var uv0 = new Vector2(k_GridGizmoDistanceFalloff, 0f); + var uvs = new Vector2[vertex]; + var indices = new int[vertex]; + var colors = new Color[vertex]; + var normals = new Vector3[totalVertices]; // Normal channel stores the position of the other end point of the line. + var uvs3 = new Vector2[totalVertices]; // UV3 channel stores the UV2 value of the other end point of the line. + + for (int i = 0; i < vertex; i++) + { + uvs[i] = uv0; + indices[i] = i; + colors[i] = color; + var alternate = i + ((i % 2) == 0 ? 1 : -1); + normals[i] = vertices[alternate]; + uvs3[i] = uvs2[alternate]; + } + + mesh.vertices = vertices; + mesh.uv = uvs; + mesh.uv2 = uvs2; + mesh.uv3 = uvs3; + mesh.colors = colors; + mesh.normals = normals; + mesh.SetIndices(indices, topology, 0); + + return mesh; + } + + private static Mesh GenerateCachedHexagonalGridMesh(GridLayout gridLayout, Color color) + { + Mesh mesh = new Mesh(); + mesh.hideFlags = HideFlags.HideAndDontSave; + int vertex = 0; + int max = k_GridGizmoVertexCount / (2 * (6 * 2)); + max = (max / 4) * 4; + int min = -max; + float numVerticalCells = 6 * (max / 4); + int totalVertices = max * 2 * 6 * 2; + var cellStrideY = gridLayout.cellGap.y + gridLayout.cellSize.y; + var cellOffsetY = gridLayout.cellSize.y / 2; + var hexOffset = (1.0f / 3.0f); + var drawTotal = numVerticalCells * 2.0f * hexOffset; + var drawDiagTotal = 2 * drawTotal; + Vector3[] vertices = new Vector3[totalVertices]; + Vector2[] uvs2 = new Vector2[totalVertices]; + // Draw Vertical Lines + for (int x = min; x < max; x++) + { + vertices[vertex] = gridLayout.CellToLocal(new Vector3Int(x, min, 0)); + vertices[vertex + 1] = gridLayout.CellToLocal(new Vector3Int(x, max, 0)); + uvs2[vertex] = new Vector2(0f, 2 * hexOffset); + uvs2[vertex + 1] = new Vector2(0f, 2 * hexOffset + drawTotal); + vertex += 2; + // Alternate Row Offset + vertices[vertex] = gridLayout.CellToLocal(new Vector3Int(x, min - 1, 0)); + vertices[vertex + 1] = gridLayout.CellToLocal(new Vector3Int(x, max - 1, 0)); + uvs2[vertex] = new Vector2(0f, 2 * hexOffset); + uvs2[vertex + 1] = new Vector2(0f, 2 * hexOffset + drawTotal); + vertex += 2; + } + // Draw Diagonals + for (int y = min; y < max; y++) + { + float drawDiagOffset = ((y + 1) % 3) * hexOffset; + var cellOffSet = Grid.Swizzle(gridLayout.cellSwizzle, new Vector3(0f, y * cellStrideY + cellOffsetY, 0.0f)); + // Slope Up + vertices[vertex] = gridLayout.CellToLocal(new Vector3Int(Mathf.RoundToInt(1.5f * min), min, 0)) + cellOffSet; + vertices[vertex + 1] = gridLayout.CellToLocal(new Vector3Int(Mathf.RoundToInt(1.5f * max), max, 0)) + cellOffSet; + uvs2[vertex] = new Vector2(0f, drawDiagOffset); + uvs2[vertex + 1] = new Vector2(0f, drawDiagOffset + drawDiagTotal); + vertex += 2; + // Slope Down + vertices[vertex] = gridLayout.CellToLocal(new Vector3Int(Mathf.RoundToInt(1.5f * max), min, 0)) + cellOffSet; + vertices[vertex + 1] = gridLayout.CellToLocal(new Vector3Int(Mathf.RoundToInt(1.5f * min), max, 0)) + cellOffSet; + uvs2[vertex] = new Vector2(0f, drawDiagOffset); + uvs2[vertex + 1] = new Vector2(0f, drawDiagOffset + drawDiagTotal); + vertex += 2; + // Alternate Row Offset + vertices[vertex] = gridLayout.CellToLocal(new Vector3Int(Mathf.RoundToInt(1.5f * min) + 1, min, 0)) + cellOffSet; + vertices[vertex + 1] = gridLayout.CellToLocal(new Vector3Int(Mathf.RoundToInt(1.5f * max) + 1, max, 0)) + cellOffSet; + uvs2[vertex] = new Vector2(0f, drawDiagOffset); + uvs2[vertex + 1] = new Vector2(0f, drawDiagOffset + drawDiagTotal); + vertex += 2; + vertices[vertex] = gridLayout.CellToLocal(new Vector3Int(Mathf.RoundToInt(1.5f * max) + 1, min, 0)) + cellOffSet; + vertices[vertex + 1] = gridLayout.CellToLocal(new Vector3Int(Mathf.RoundToInt(1.5f * min) + 1, max, 0)) + cellOffSet; + uvs2[vertex] = new Vector2(0f, drawDiagOffset); + uvs2[vertex + 1] = new Vector2(0f, drawDiagOffset + drawDiagTotal); + vertex += 2; + } + var uv0 = new Vector2(k_GridGizmoDistanceFalloff, 0f); + var indices = new int[totalVertices]; + var uvs = new Vector2[totalVertices]; + var colors = new Color[totalVertices]; + var normals = new Vector3[totalVertices]; // Normal channel stores the position of the other end point of the line. + var uvs3 = new Vector2[totalVertices]; // UV3 channel stores the UV2 value of the other end point of the line. + + for (int i = 0; i < totalVertices; i++) + { + uvs[i] = uv0; + indices[i] = i; + colors[i] = color; + var alternate = i + ((i % 2) == 0 ? 1 : -1); + normals[i] = vertices[alternate]; + uvs3[i] = uvs2[alternate]; + } + + mesh.vertices = vertices; + mesh.uv = uvs; + mesh.uv2 = uvs2; + mesh.uv3 = uvs3; + mesh.colors = colors; + mesh.normals = normals; + mesh.SetIndices(indices, MeshTopology.Lines, 0); + return mesh; + } + } +} \ No newline at end of file diff --git a/Packages/Floorplan-2.0/Static/GridUtilityEditor.cs.meta b/Packages/Floorplan-2.0/Static/GridUtilityEditor.cs.meta new file mode 100644 index 00000000..b1b48c61 --- /dev/null +++ b/Packages/Floorplan-2.0/Static/GridUtilityEditor.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 4dbeb7e810b463742b937ae39fe73c12 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/Floorplan-2.0/Static/MeshWelder.cs b/Packages/Floorplan-2.0/Static/MeshWelder.cs new file mode 100644 index 00000000..f2dbeaca --- /dev/null +++ b/Packages/Floorplan-2.0/Static/MeshWelder.cs @@ -0,0 +1,194 @@ +using System.Collections.Generic; +using System.Linq; +using UnityEngine; + + public enum EVertexAttribute + { + Position = 0x0001, + Normal = 0x0002, + Tangent = 0x0004, + Color = 0x0008, + UV1 = 0x0010, + UV2 = 0x0020, + UV3 = 0x0040, + UV4 = 0x0080, + BoneWeight = 0x0100, + } + + public class Vertex + { + public Vector3 pos; + public Vector3 normal; + public Vector4 tangent; + public Color color; + public Vector2 uv1; + public Vector2 uv2; + public Vector2 uv3; + public Vector2 uv4; + public BoneWeight bWeight; + public Vertex(Vector3 aPos) + { + pos = aPos; + } + } + + public class MeshWelder + { + + Vertex[] vertices; + List newVerts; + int[] map; + + EVertexAttribute m_Attributes; + Mesh m_Mesh; + public float MaxUVDelta = 0.0001f; + public float MaxPositionDelta = 0.001f; + public float MaxAngleDelta = 0.01f; + public float MaxColorDelta = 1f / 255f; + public float MaxBWeightDelta = 0.01f; + + public MeshWelder(Mesh aMesh) + { + m_Mesh = aMesh; + } + + private bool HasAttr(EVertexAttribute aAttr) + { + return (m_Attributes & aAttr) != 0; + } + private bool CompareColor(Color c1, Color c2) + { + return + (Mathf.Abs(c1.r - c2.r) <= MaxColorDelta) && + (Mathf.Abs(c1.g - c2.g) <= MaxColorDelta) && + (Mathf.Abs(c1.b - c2.b) <= MaxColorDelta) && + (Mathf.Abs(c1.a - c2.a) <= MaxColorDelta); + } + + private bool CompareBoneWeight(BoneWeight v1, BoneWeight v2) + { + if (v1.boneIndex0 != v2.boneIndex0 || v1.boneIndex1 != v2.boneIndex1 || + v1.boneIndex2 != v2.boneIndex2 || v1.boneIndex3 != v2.boneIndex3) return false; + if (Mathf.Abs(v1.weight0 - v2.weight0) > MaxBWeightDelta) return false; + if (Mathf.Abs(v1.weight1 - v2.weight1) > MaxBWeightDelta) return false; + if (Mathf.Abs(v1.weight2 - v2.weight2) > MaxBWeightDelta) return false; + if (Mathf.Abs(v1.weight3 - v2.weight3) > MaxBWeightDelta) return false; + return true; + } + + private bool Compare(Vertex v1, Vertex v2) + { + if ((v1.pos - v2.pos).sqrMagnitude > MaxPositionDelta) return false; + if (HasAttr(EVertexAttribute.Normal) && Vector3.Angle(v1.normal, v2.normal) > MaxAngleDelta) return false; + if (HasAttr(EVertexAttribute.Tangent) && Vector3.Angle(v1.tangent, v2.tangent) > MaxAngleDelta || v1.tangent.w != v2.tangent.w) return false; + if (HasAttr(EVertexAttribute.Color) && !CompareColor(v1.color, v2.color)) return false; + if (HasAttr(EVertexAttribute.UV1) && (v1.uv1 - v2.uv1).sqrMagnitude > MaxUVDelta) return false; + if (HasAttr(EVertexAttribute.UV2) && (v1.uv2 - v2.uv2).sqrMagnitude > MaxUVDelta) return false; + if (HasAttr(EVertexAttribute.UV3) && (v1.uv3 - v2.uv3).sqrMagnitude > MaxUVDelta) return false; + if (HasAttr(EVertexAttribute.UV4) && (v1.uv4 - v2.uv4).sqrMagnitude > MaxUVDelta) return false; + if (HasAttr(EVertexAttribute.BoneWeight) && !CompareBoneWeight(v1.bWeight, v2.bWeight)) return false; + return true; + } + + private void CreateVertexList() + { + var Positions = m_Mesh.vertices; + var Normals = m_Mesh.normals; + var Tangents = m_Mesh.tangents; + var Colors = m_Mesh.colors; + var Uv1 = m_Mesh.uv; + var Uv2 = m_Mesh.uv2; + var Uv3 = m_Mesh.uv3; + var Uv4 = m_Mesh.uv4; + var BWeights = m_Mesh.boneWeights; + m_Attributes = EVertexAttribute.Position; + if (Normals != null && Normals.Length > 0) m_Attributes |= EVertexAttribute.Normal; + if (Tangents != null && Tangents.Length > 0) m_Attributes |= EVertexAttribute.Tangent; + if (Colors != null && Colors.Length > 0) m_Attributes |= EVertexAttribute.Color; + if (Uv1 != null && Uv1.Length > 0) m_Attributes |= EVertexAttribute.UV1; + if (Uv2 != null && Uv2.Length > 0) m_Attributes |= EVertexAttribute.UV2; + if (Uv3 != null && Uv3.Length > 0) m_Attributes |= EVertexAttribute.UV3; + if (Uv4 != null && Uv4.Length > 0) m_Attributes |= EVertexAttribute.UV4; + if (BWeights != null && BWeights.Length > 0) m_Attributes |= EVertexAttribute.BoneWeight; + + vertices = new Vertex[Positions.Length]; + for (int i = 0; i < Positions.Length; i++) + { + var v = new Vertex(Positions[i]); + if (HasAttr(EVertexAttribute.Normal)) v.normal = Normals[i]; + if (HasAttr(EVertexAttribute.Tangent)) v.tangent = Tangents[i]; + if (HasAttr(EVertexAttribute.Color)) v.color = Colors[i]; + if (HasAttr(EVertexAttribute.UV1)) v.uv1 = Uv1[i]; + if (HasAttr(EVertexAttribute.UV2)) v.uv2 = Uv2[i]; + if (HasAttr(EVertexAttribute.UV3)) v.uv3 = Uv3[i]; + if (HasAttr(EVertexAttribute.UV4)) v.uv4 = Uv4[i]; + if (HasAttr(EVertexAttribute.BoneWeight)) v.bWeight = BWeights[i]; + vertices[i] = v; + } + } + private void RemoveDuplicates() + { + map = new int[vertices.Length]; + newVerts = new List(); + for (int i = 0; i < vertices.Length; i++) + { + var v = vertices[i]; + bool dup = false; + for (int i2 = 0; i2 < newVerts.Count; i2++) + { + if (Compare(v, newVerts[i2])) + { + map[i] = i2; + dup = true; + break; + } + } + if (!dup) + { + map[i] = newVerts.Count; + newVerts.Add(v); + } + } + } + private void AssignNewVertexArrays() + { + m_Mesh.vertices = newVerts.Select(v => v.pos).ToArray(); + if (HasAttr(EVertexAttribute.Normal)) + m_Mesh.normals = newVerts.Select(v => v.normal).ToArray(); + if (HasAttr(EVertexAttribute.Tangent)) + m_Mesh.tangents = newVerts.Select(v => v.tangent).ToArray(); + if (HasAttr(EVertexAttribute.Color)) + m_Mesh.colors = newVerts.Select(v => v.color).ToArray(); + if (HasAttr(EVertexAttribute.UV1)) + m_Mesh.uv = newVerts.Select(v => v.uv1).ToArray(); + if (HasAttr(EVertexAttribute.UV2)) + m_Mesh.uv2 = newVerts.Select(v => v.uv2).ToArray(); + if (HasAttr(EVertexAttribute.UV3)) + m_Mesh.uv3 = newVerts.Select(v => v.uv3).ToArray(); + if (HasAttr(EVertexAttribute.UV4)) + m_Mesh.uv4 = newVerts.Select(v => v.uv4).ToArray(); + if (HasAttr(EVertexAttribute.BoneWeight)) + m_Mesh.boneWeights = newVerts.Select(v => v.bWeight).ToArray(); + } + + private void RemapTriangles() + { + for (int n = 0; n < m_Mesh.subMeshCount; n++) + { + var tris = m_Mesh.GetTriangles(n); + for (int i = 0; i < tris.Length; i++) + { + tris[i] = map[tris[i]]; + } + m_Mesh.SetTriangles(tris, n); + } + } + public void Weld() + { + CreateVertexList(); + RemoveDuplicates(); + RemapTriangles(); + AssignNewVertexArrays(); + } + } + diff --git a/Packages/Floorplan-2.0/Static/MeshWelder.cs.meta b/Packages/Floorplan-2.0/Static/MeshWelder.cs.meta new file mode 100644 index 00000000..7f6df793 --- /dev/null +++ b/Packages/Floorplan-2.0/Static/MeshWelder.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: a067ff12ca6ed39469eda7ab2c4b00df +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/Floorplan-2.0/Static/com.alexismorin.floorplan.static.asmdef b/Packages/Floorplan-2.0/Static/com.alexismorin.floorplan.static.asmdef new file mode 100644 index 00000000..05f88a00 --- /dev/null +++ b/Packages/Floorplan-2.0/Static/com.alexismorin.floorplan.static.asmdef @@ -0,0 +1,13 @@ +{ + "name": "com.alexismorin.floorplan.static", + "references": [], + "includePlatforms": [], + "excludePlatforms": [], + "allowUnsafeCode": false, + "overrideReferences": false, + "precompiledReferences": [], + "autoReferenced": true, + "defineConstraints": [], + "versionDefines": [], + "noEngineReferences": false +} \ No newline at end of file diff --git a/Packages/Floorplan-2.0/Static/com.alexismorin.floorplan.static.asmdef.meta b/Packages/Floorplan-2.0/Static/com.alexismorin.floorplan.static.asmdef.meta new file mode 100644 index 00000000..d11031ff --- /dev/null +++ b/Packages/Floorplan-2.0/Static/com.alexismorin.floorplan.static.asmdef.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: c4df6f69b1bd3d542a0bd5e003678751 +AssemblyDefinitionImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/Floorplan-2.0/package.json b/Packages/Floorplan-2.0/package.json new file mode 100644 index 00000000..14af5ab2 --- /dev/null +++ b/Packages/Floorplan-2.0/package.json @@ -0,0 +1,12 @@ +{ + "name": "com.alexismorin.floorplan", + "displayName": "Floorplan", + "version": "2.0.0", + "unity": "2019.2", + "description": "A Sims-Like Unity Level Design Plugin", + "keywords": [ + "building", + "blocking" + ], + "category": "Open-Source" +} \ No newline at end of file diff --git a/Packages/Floorplan-2.0/package.json.meta b/Packages/Floorplan-2.0/package.json.meta new file mode 100644 index 00000000..0b80fbf0 --- /dev/null +++ b/Packages/Floorplan-2.0/package.json.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 3d1ddb03157474846b14b0778778b020 +PackageManifestImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/manifest.json b/Packages/manifest.json index b6ac80c4..e21586e8 100644 --- a/Packages/manifest.json +++ b/Packages/manifest.json @@ -7,7 +7,6 @@ "com.unity.formats.fbx": "5.0.0", "com.unity.ide.rider": "3.0.24", "com.unity.ide.visualstudio": "2.0.18", - "com.unity.ide.vscode": "1.2.5", "com.unity.render-pipelines.universal": "15.0.6", "com.unity.test-framework": "1.3.9", "com.unity.textmeshpro": "3.0.6", diff --git a/Packages/packages-lock.json b/Packages/packages-lock.json index 1f01105e..c963b2ff 100644 --- a/Packages/packages-lock.json +++ b/Packages/packages-lock.json @@ -1,5 +1,11 @@ { "dependencies": { + "com.alexismorin.floorplan": { + "version": "file:Floorplan-2.0", + "depth": 0, + "source": "embedded", + "dependencies": {} + }, "com.autodesk.fbx": { "version": "5.0.0", "depth": 1, @@ -86,13 +92,6 @@ }, "url": "https://packages.unity.com" }, - "com.unity.ide.vscode": { - "version": "1.2.5", - "depth": 0, - "source": "registry", - "dependencies": {}, - "url": "https://packages.unity.com" - }, "com.unity.mathematics": { "version": "1.2.6", "depth": 1,