mirror of
https://github.com/tetreum/brickcraft.git
synced 2025-12-17 16:55:15 -06:00
+ Generate a much simpler mesh collider for the terrain
This commit is contained in:
9
Assets/Models/Bricks/3003/3003_SimpleCube.mtl
Normal file
9
Assets/Models/Bricks/3003/3003_SimpleCube.mtl
Normal file
@@ -0,0 +1,9 @@
|
||||
#
|
||||
## Alias OBJ Material File
|
||||
# Exported from SketchUp, (c) 2000-2012 Trimble Navigation Limited
|
||||
|
||||
newmtl FrontColor
|
||||
Ka 0.000000 0.000000 0.000000
|
||||
Kd 1.000000 1.000000 1.000000
|
||||
Ks 0.330000 0.330000 0.330000
|
||||
|
||||
7
Assets/Models/Bricks/3003/3003_SimpleCube.mtl.meta
Normal file
7
Assets/Models/Bricks/3003/3003_SimpleCube.mtl.meta
Normal file
@@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: dafb4521075424e42a009a724b1912e5
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
59
Assets/Models/Bricks/3003/3003_SimpleCube.obj
Normal file
59
Assets/Models/Bricks/3003/3003_SimpleCube.obj
Normal file
@@ -0,0 +1,59 @@
|
||||
# Alias OBJ Model File
|
||||
# Exported from SketchUp, (c) 2000-2012 Trimble Navigation Limited
|
||||
# File units = centimeters
|
||||
|
||||
mtllib 3003_SimpleCube.mtl
|
||||
|
||||
g Mesh1 Model
|
||||
|
||||
usemtl FrontColor
|
||||
v 127.912 151.611 125.072
|
||||
vt 50.359 -49.2409
|
||||
vn 0 1 -0
|
||||
v 127.912 151.611 -126.875
|
||||
vt 50.359 49.9507
|
||||
v -124.035 151.611 -126.875
|
||||
vt -48.8326 49.9507
|
||||
v -124.035 151.611 125.072
|
||||
vt -48.8326 -49.2409
|
||||
f 1/1/1 2/2/1 3/3/1 4/4/1
|
||||
|
||||
v 127.912 0.316516 125.072
|
||||
vt -49.2409 0.124613
|
||||
vn 1 0 -0
|
||||
v 127.912 0.316516 -126.875
|
||||
vt 49.9507 0.124613
|
||||
vt 49.9507 59.6894
|
||||
vt -49.2409 59.6894
|
||||
f 5/5/2 6/6/2 2/7/2 1/8/2
|
||||
|
||||
v -124.035 0.316516 125.072
|
||||
vt 48.8326 -49.2409
|
||||
vn 0 -1 -0
|
||||
v -124.035 0.316516 -126.875
|
||||
vt 48.8326 49.9507
|
||||
vt -50.359 49.9507
|
||||
vt -50.359 -49.2409
|
||||
f 7/9/3 8/10/3 6/11/3 5/12/3
|
||||
|
||||
vt 49.2409 59.6894
|
||||
vn -1 0 -0
|
||||
vt -49.9507 59.6894
|
||||
vt -49.9507 0.124613
|
||||
vt 49.2409 0.124613
|
||||
f 4/13/4 3/14/4 8/15/4 7/16/4
|
||||
|
||||
vt 48.8326 59.6894
|
||||
vn 0 0 -1
|
||||
vt -50.359 59.6894
|
||||
vt -50.359 0.124613
|
||||
vt 48.8326 0.124613
|
||||
f 3/17/5 2/18/5 6/19/5 8/20/5
|
||||
|
||||
vt -48.8326 59.6894
|
||||
vn 0 0 1
|
||||
vt -48.8326 0.124613
|
||||
vt 50.359 0.124613
|
||||
vt 50.359 59.6894
|
||||
f 4/21/6 7/22/6 5/23/6 1/24/6
|
||||
|
||||
102
Assets/Models/Bricks/3003/3003_SimpleCube.obj.meta
Normal file
102
Assets/Models/Bricks/3003/3003_SimpleCube.obj.meta
Normal file
@@ -0,0 +1,102 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 3158aac840e893f4c9e5da257528c30f
|
||||
ModelImporter:
|
||||
serializedVersion: 20200
|
||||
internalIDToNameTable: []
|
||||
externalObjects: {}
|
||||
materials:
|
||||
materialImportMode: 2
|
||||
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: 0
|
||||
meshes:
|
||||
lODScreenPercentages: []
|
||||
globalScale: 0.00316
|
||||
meshCompression: 0
|
||||
addColliders: 0
|
||||
useSRGBMaterialColor: 1
|
||||
sortHierarchyByName: 1
|
||||
importVisibility: 1
|
||||
importBlendShapes: 1
|
||||
importCameras: 1
|
||||
importLights: 1
|
||||
fileIdsGeneration: 2
|
||||
swapUVChannels: 0
|
||||
generateSecondaryUV: 0
|
||||
useFileUnits: 1
|
||||
keepQuads: 0
|
||||
weldVertices: 1
|
||||
bakeAxisConversion: 0
|
||||
preserveHierarchy: 0
|
||||
skinWeightsMode: 0
|
||||
maxBonesPerVertex: 4
|
||||
minBoneWeight: 0.001
|
||||
meshOptimizationFlags: -1
|
||||
indexFormat: 0
|
||||
secondaryUVAngleDistortion: 8
|
||||
secondaryUVAreaDistortion: 15.000001
|
||||
secondaryUVHardAngle: 88
|
||||
secondaryUVMarginMethod: 1
|
||||
secondaryUVMinLightmapResolution: 40
|
||||
secondaryUVMinObjectScale: 1
|
||||
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: 0.00316
|
||||
rootMotionBoneName:
|
||||
hasTranslationDoF: 0
|
||||
hasExtraRoot: 0
|
||||
skeletonHasParents: 1
|
||||
lastHumanDescriptionAvatarSource: {instanceID: 0}
|
||||
autoGenerateAvatarMappingIfUnspecified: 1
|
||||
animationType: 2
|
||||
humanoidOversampling: 1
|
||||
avatarSetup: 0
|
||||
addHumanoidExtraRootOnlyWhenUsingAvatar: 1
|
||||
additionalBone: 0
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -38,7 +38,7 @@ RenderSettings:
|
||||
m_ReflectionIntensity: 1
|
||||
m_CustomReflection: {fileID: 0}
|
||||
m_Sun: {fileID: 0}
|
||||
m_IndirectSpecularColor: {r: 2161.1426, g: 2269.287, b: 3322.5312, a: 1}
|
||||
m_IndirectSpecularColor: {r: 2159.9756, g: 2267.873, b: 3319.629, a: 1}
|
||||
m_UseRadianceAmbientProbe: 0
|
||||
--- !u!157 &3
|
||||
LightmapSettings:
|
||||
@@ -869,6 +869,7 @@ MonoBehaviour:
|
||||
m_EditorClassIdentifier:
|
||||
cubeMesh: {fileID: -2432090755550338912, guid: 4674aeb25d1bdd24091e11b3d56a9e25, type: 3}
|
||||
obj: {fileID: 6108302372163926669}
|
||||
brickColliderObj: {fileID: 2052450937}
|
||||
--- !u!4 &625603112
|
||||
Transform:
|
||||
m_ObjectHideFlags: 0
|
||||
@@ -944,6 +945,102 @@ PrefabInstance:
|
||||
objectReference: {fileID: 0}
|
||||
m_RemovedComponents: []
|
||||
m_SourcePrefab: {fileID: 100100000, guid: f95b4ecb0498be44db5c16f2b6e58c74, type: 3}
|
||||
--- !u!1 &710734603
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 710734604}
|
||||
- component: {fileID: 710734607}
|
||||
- component: {fileID: 710734606}
|
||||
- component: {fileID: 710734605}
|
||||
m_Layer: 0
|
||||
m_Name: Back
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!4 &710734604
|
||||
Transform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 710734603}
|
||||
m_LocalRotation: {x: 0.7071068, y: 0, z: 0, w: 0.7071068}
|
||||
m_LocalPosition: {x: 0.0009994507, y: 0.2479, z: 0.394}
|
||||
m_LocalScale: {x: 0.08276857, y: 1, z: 0.057331607}
|
||||
m_Children: []
|
||||
m_Father: {fileID: 2052450937}
|
||||
m_RootOrder: 2
|
||||
m_LocalEulerAnglesHint: {x: 90, y: 0, z: 0}
|
||||
--- !u!64 &710734605
|
||||
MeshCollider:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 710734603}
|
||||
m_Material: {fileID: 0}
|
||||
m_IsTrigger: 0
|
||||
m_Enabled: 1
|
||||
serializedVersion: 4
|
||||
m_Convex: 0
|
||||
m_CookingOptions: 30
|
||||
m_Mesh: {fileID: 10209, guid: 0000000000000000e000000000000000, type: 0}
|
||||
--- !u!23 &710734606
|
||||
MeshRenderer:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 710734603}
|
||||
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_RayTraceProcedural: 0
|
||||
m_RenderingLayerMask: 257
|
||||
m_RendererPriority: 0
|
||||
m_Materials:
|
||||
- {fileID: 2100000, guid: e514b70a16480c6419ac1242262ce115, 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
|
||||
m_AdditionalVertexStreams: {fileID: 0}
|
||||
--- !u!33 &710734607
|
||||
MeshFilter:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 710734603}
|
||||
m_Mesh: {fileID: 10209, guid: 0000000000000000e000000000000000, type: 0}
|
||||
--- !u!1 &790548551
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
@@ -1040,6 +1137,390 @@ MeshFilter:
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 790548551}
|
||||
m_Mesh: {fileID: 10209, guid: 0000000000000000e000000000000000, type: 0}
|
||||
--- !u!1 &842927739
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 842927740}
|
||||
- component: {fileID: 842927743}
|
||||
- component: {fileID: 842927742}
|
||||
- component: {fileID: 842927741}
|
||||
m_Layer: 0
|
||||
m_Name: Right
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!4 &842927740
|
||||
Transform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 842927739}
|
||||
m_LocalRotation: {x: -0.5, y: -0.5, z: -0.5, w: 0.5}
|
||||
m_LocalPosition: {x: 0.389, y: 0.2479, z: -0.004}
|
||||
m_LocalScale: {x: 0.08276857, y: 1, z: 0.057331607}
|
||||
m_Children: []
|
||||
m_Father: {fileID: 2052450937}
|
||||
m_RootOrder: 4
|
||||
m_LocalEulerAnglesHint: {x: -90, y: -90, z: 0}
|
||||
--- !u!64 &842927741
|
||||
MeshCollider:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 842927739}
|
||||
m_Material: {fileID: 0}
|
||||
m_IsTrigger: 0
|
||||
m_Enabled: 1
|
||||
serializedVersion: 4
|
||||
m_Convex: 0
|
||||
m_CookingOptions: 30
|
||||
m_Mesh: {fileID: 10209, guid: 0000000000000000e000000000000000, type: 0}
|
||||
--- !u!23 &842927742
|
||||
MeshRenderer:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 842927739}
|
||||
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_RayTraceProcedural: 0
|
||||
m_RenderingLayerMask: 257
|
||||
m_RendererPriority: 0
|
||||
m_Materials:
|
||||
- {fileID: 2100000, guid: e514b70a16480c6419ac1242262ce115, 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
|
||||
m_AdditionalVertexStreams: {fileID: 0}
|
||||
--- !u!33 &842927743
|
||||
MeshFilter:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 842927739}
|
||||
m_Mesh: {fileID: 10209, guid: 0000000000000000e000000000000000, type: 0}
|
||||
--- !u!1 &1236961032
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 1236961033}
|
||||
- component: {fileID: 1236961036}
|
||||
- component: {fileID: 1236961035}
|
||||
- component: {fileID: 1236961034}
|
||||
m_Layer: 0
|
||||
m_Name: Top
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!4 &1236961033
|
||||
Transform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1236961032}
|
||||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||
m_LocalPosition: {x: 0.001, y: 0.453, z: 0.01117}
|
||||
m_LocalScale: {x: 0.08276857, y: 1, z: 0.083801396}
|
||||
m_Children: []
|
||||
m_Father: {fileID: 2052450937}
|
||||
m_RootOrder: 0
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
--- !u!64 &1236961034
|
||||
MeshCollider:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1236961032}
|
||||
m_Material: {fileID: 0}
|
||||
m_IsTrigger: 0
|
||||
m_Enabled: 1
|
||||
serializedVersion: 4
|
||||
m_Convex: 0
|
||||
m_CookingOptions: 30
|
||||
m_Mesh: {fileID: 10209, guid: 0000000000000000e000000000000000, type: 0}
|
||||
--- !u!23 &1236961035
|
||||
MeshRenderer:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1236961032}
|
||||
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_RayTraceProcedural: 0
|
||||
m_RenderingLayerMask: 257
|
||||
m_RendererPriority: 0
|
||||
m_Materials:
|
||||
- {fileID: 2100000, guid: e514b70a16480c6419ac1242262ce115, 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
|
||||
m_AdditionalVertexStreams: {fileID: 0}
|
||||
--- !u!33 &1236961036
|
||||
MeshFilter:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1236961032}
|
||||
m_Mesh: {fileID: 10209, guid: 0000000000000000e000000000000000, type: 0}
|
||||
--- !u!1 &1241225975
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 1241225976}
|
||||
- component: {fileID: 1241225979}
|
||||
- component: {fileID: 1241225978}
|
||||
- component: {fileID: 1241225977}
|
||||
m_Layer: 0
|
||||
m_Name: Bottom
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!4 &1241225976
|
||||
Transform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1241225975}
|
||||
m_LocalRotation: {x: 0, y: 0, z: 1, w: 0}
|
||||
m_LocalPosition: {x: 0.0009994507, y: 0.233, z: 0.011169434}
|
||||
m_LocalScale: {x: 0.08276857, y: 1, z: 0.083801396}
|
||||
m_Children: []
|
||||
m_Father: {fileID: 2052450937}
|
||||
m_RootOrder: 5
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 180}
|
||||
--- !u!64 &1241225977
|
||||
MeshCollider:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1241225975}
|
||||
m_Material: {fileID: 0}
|
||||
m_IsTrigger: 0
|
||||
m_Enabled: 1
|
||||
serializedVersion: 4
|
||||
m_Convex: 0
|
||||
m_CookingOptions: 30
|
||||
m_Mesh: {fileID: 10209, guid: 0000000000000000e000000000000000, type: 0}
|
||||
--- !u!23 &1241225978
|
||||
MeshRenderer:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1241225975}
|
||||
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_RayTraceProcedural: 0
|
||||
m_RenderingLayerMask: 257
|
||||
m_RendererPriority: 0
|
||||
m_Materials:
|
||||
- {fileID: 2100000, guid: e514b70a16480c6419ac1242262ce115, 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
|
||||
m_AdditionalVertexStreams: {fileID: 0}
|
||||
--- !u!33 &1241225979
|
||||
MeshFilter:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1241225975}
|
||||
m_Mesh: {fileID: 10209, guid: 0000000000000000e000000000000000, type: 0}
|
||||
--- !u!1 &1699118880
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 1699118881}
|
||||
- component: {fileID: 1699118884}
|
||||
- component: {fileID: 1699118883}
|
||||
- component: {fileID: 1699118882}
|
||||
m_Layer: 0
|
||||
m_Name: Left
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!4 &1699118881
|
||||
Transform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1699118880}
|
||||
m_LocalRotation: {x: -0.5, y: 0.5, z: 0.5, w: 0.5}
|
||||
m_LocalPosition: {x: -0.389, y: 0.2479, z: -0.004}
|
||||
m_LocalScale: {x: 0.08276857, y: 1, z: 0.057331607}
|
||||
m_Children: []
|
||||
m_Father: {fileID: 2052450937}
|
||||
m_RootOrder: 3
|
||||
m_LocalEulerAnglesHint: {x: -90, y: 90, z: 0}
|
||||
--- !u!64 &1699118882
|
||||
MeshCollider:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1699118880}
|
||||
m_Material: {fileID: 0}
|
||||
m_IsTrigger: 0
|
||||
m_Enabled: 1
|
||||
serializedVersion: 4
|
||||
m_Convex: 0
|
||||
m_CookingOptions: 30
|
||||
m_Mesh: {fileID: 10209, guid: 0000000000000000e000000000000000, type: 0}
|
||||
--- !u!23 &1699118883
|
||||
MeshRenderer:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1699118880}
|
||||
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_RayTraceProcedural: 0
|
||||
m_RenderingLayerMask: 257
|
||||
m_RendererPriority: 0
|
||||
m_Materials:
|
||||
- {fileID: 2100000, guid: e514b70a16480c6419ac1242262ce115, 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
|
||||
m_AdditionalVertexStreams: {fileID: 0}
|
||||
--- !u!33 &1699118884
|
||||
MeshFilter:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1699118880}
|
||||
m_Mesh: {fileID: 10209, guid: 0000000000000000e000000000000000, type: 0}
|
||||
--- !u!1 &1765685900
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
@@ -1443,6 +1924,102 @@ MonoBehaviour:
|
||||
m_Script: {fileID: 11500000, guid: 6fb119473ae81da4291b7cb5ac72ee0f, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
--- !u!1 &2000588272
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 2000588273}
|
||||
- component: {fileID: 2000588276}
|
||||
- component: {fileID: 2000588275}
|
||||
- component: {fileID: 2000588274}
|
||||
m_Layer: 0
|
||||
m_Name: Front
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!4 &2000588273
|
||||
Transform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 2000588272}
|
||||
m_LocalRotation: {x: -0.7071068, y: 0, z: 0, w: 0.7071068}
|
||||
m_LocalPosition: {x: 0.0009994507, y: 0.2479, z: -0.392}
|
||||
m_LocalScale: {x: 0.08276857, y: 1, z: 0.057331607}
|
||||
m_Children: []
|
||||
m_Father: {fileID: 2052450937}
|
||||
m_RootOrder: 1
|
||||
m_LocalEulerAnglesHint: {x: -90, y: 0, z: 0}
|
||||
--- !u!64 &2000588274
|
||||
MeshCollider:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 2000588272}
|
||||
m_Material: {fileID: 0}
|
||||
m_IsTrigger: 0
|
||||
m_Enabled: 1
|
||||
serializedVersion: 4
|
||||
m_Convex: 0
|
||||
m_CookingOptions: 30
|
||||
m_Mesh: {fileID: 10209, guid: 0000000000000000e000000000000000, type: 0}
|
||||
--- !u!23 &2000588275
|
||||
MeshRenderer:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 2000588272}
|
||||
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_RayTraceProcedural: 0
|
||||
m_RenderingLayerMask: 257
|
||||
m_RendererPriority: 0
|
||||
m_Materials:
|
||||
- {fileID: 2100000, guid: e514b70a16480c6419ac1242262ce115, 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
|
||||
m_AdditionalVertexStreams: {fileID: 0}
|
||||
--- !u!33 &2000588276
|
||||
MeshFilter:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 2000588272}
|
||||
m_Mesh: {fileID: 10209, guid: 0000000000000000e000000000000000, type: 0}
|
||||
--- !u!1 &2013410473
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 1
|
||||
@@ -1488,6 +2065,93 @@ Transform:
|
||||
m_Father: {fileID: 0}
|
||||
m_RootOrder: 4
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
--- !u!1 &2052450934
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 2052450937}
|
||||
- component: {fileID: 2052450936}
|
||||
- component: {fileID: 2052450935}
|
||||
m_Layer: 0
|
||||
m_Name: 3003 SimpleCube
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!23 &2052450935
|
||||
MeshRenderer:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 2052450934}
|
||||
m_Enabled: 1
|
||||
m_CastShadows: 0
|
||||
m_ReceiveShadows: 1
|
||||
m_DynamicOccludee: 1
|
||||
m_MotionVectors: 1
|
||||
m_LightProbeUsage: 1
|
||||
m_ReflectionProbeUsage: 1
|
||||
m_RayTracingMode: 2
|
||||
m_RayTraceProcedural: 0
|
||||
m_RenderingLayerMask: 257
|
||||
m_RendererPriority: 0
|
||||
m_Materials:
|
||||
- {fileID: -3033667219593020291, guid: 4674aeb25d1bdd24091e11b3d56a9e25, type: 3}
|
||||
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
|
||||
m_AdditionalVertexStreams: {fileID: 0}
|
||||
--- !u!33 &2052450936
|
||||
MeshFilter:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 2052450934}
|
||||
m_Mesh: {fileID: -4317298856758795638, guid: 3158aac840e893f4c9e5da257528c30f, type: 3}
|
||||
--- !u!4 &2052450937
|
||||
Transform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 2052450934}
|
||||
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
|
||||
m_LocalPosition: {x: -164.4, y: 68.2, z: 116.516}
|
||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||
m_Children:
|
||||
- {fileID: 1236961033}
|
||||
- {fileID: 2000588273}
|
||||
- {fileID: 710734604}
|
||||
- {fileID: 1699118881}
|
||||
- {fileID: 842927740}
|
||||
- {fileID: 1241225976}
|
||||
m_Father: {fileID: 0}
|
||||
m_RootOrder: 9
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
--- !u!1 &3058827993613838774
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
@@ -1514,7 +2178,7 @@ MeshRenderer:
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 3058827993613838774}
|
||||
m_Enabled: 1
|
||||
m_CastShadows: 1
|
||||
m_CastShadows: 0
|
||||
m_ReceiveShadows: 1
|
||||
m_DynamicOccludee: 1
|
||||
m_MotionVectors: 1
|
||||
|
||||
@@ -20,6 +20,7 @@ namespace Brickcraft
|
||||
private Vector3 currentStud;
|
||||
private Transform latestStudGrid;
|
||||
private Vector2Int latestStud;
|
||||
private bool isHighAgainstTerrain = false;
|
||||
|
||||
private void Awake() {
|
||||
Instance = this;
|
||||
@@ -82,7 +83,9 @@ namespace Brickcraft
|
||||
pivot.RotateAround(currentStud, rot, 90);
|
||||
}
|
||||
if (Input.GetMouseButtonDown(1) && !isColliding) {
|
||||
Server.Instance.spawnBrick(PlayerPanel.Instance.selectedItem.item, transform.position, transform.rotation);
|
||||
Vector3 pos = transform.position;
|
||||
pos.y -= isHighAgainstTerrain ? 0.001f : 0.006f; // ugly hack to lower bricks pos
|
||||
Server.Instance.spawnBrick(PlayerPanel.Instance.selectedItem.item, pos, transform.rotation);
|
||||
|
||||
Player.Instance.removeItem(new UserItem() {
|
||||
id = PlayerPanel.Instance.selectedItem.id,
|
||||
@@ -103,13 +106,6 @@ namespace Brickcraft
|
||||
// ignore collisions with studs
|
||||
if (other.name.StartsWith("GridStud")) {
|
||||
return;
|
||||
} else if (other.name.StartsWith("ChunkSlice")) {
|
||||
/*
|
||||
RaycastHit hit;
|
||||
Physics.Raycast(transform.position, other.transform.position, out hit);
|
||||
var pos = other.gameObject.GetComponent<Collider>().ClosestPointOnBounds(transform.position);
|
||||
Debug.Log(other.transform.InverseTransformPoint(pos) + "-" + transform.InverseTransformPoint(pos));
|
||||
*/
|
||||
}
|
||||
|
||||
// prevent resetting those vars each frame
|
||||
@@ -134,10 +130,13 @@ namespace Brickcraft
|
||||
if (hit.collider.name.StartsWith("GridStud")) {
|
||||
string[] tmp = hit.collider.name.Replace("GridStud ", "").Replace("GridStudBottom ", "").Split('x');
|
||||
stud.gridDimensions = new Vector2Int(int.Parse(tmp[0]), int.Parse(tmp[1]));
|
||||
|
||||
isHighAgainstTerrain = false;
|
||||
} else {
|
||||
// is looking at world stud
|
||||
// so grid is a 16x16 (chunk slice) made by 2x2 bricks
|
||||
stud.gridDimensions = new Vector2Int(Chunk.SliceHeight * 2, Chunk.SliceHeight * 2);
|
||||
isHighAgainstTerrain = true;
|
||||
}
|
||||
|
||||
// 1x1 are easy xD
|
||||
@@ -148,7 +147,7 @@ namespace Brickcraft
|
||||
// convert world coords to local ones
|
||||
Vector3 localHitpoint = hit.collider.transform.InverseTransformPoint(hit.point);
|
||||
|
||||
if (hit.collider.name.StartsWith("ChunkSlice")) { // chunkSlices have center wrongly set
|
||||
if (isHighAgainstTerrain) { // chunkSlices have center wrongly set
|
||||
Vector3 localCenter = hit.collider.transform.InverseTransformPoint(hit.collider.transform.GetComponent<Collider>().bounds.center);
|
||||
localHitpoint -= localCenter;
|
||||
}
|
||||
@@ -231,13 +230,12 @@ namespace Brickcraft
|
||||
// height needs to be corrected for bottom studs
|
||||
if (hit.collider.name.Contains("Bottom")) {
|
||||
studPos.y -= PlayerPanel.Instance.selectedItem.item.brickModel.heightInPlates * Server.plateHeight;
|
||||
} else if (hit.collider.name.StartsWith("ChunkSlice")) { // chunkSlices have center wrongly set
|
||||
} else if (isHighAgainstTerrain) { // chunkSlices have center wrongly set
|
||||
Vector3 localCenter = hit.collider.transform.InverseTransformPoint(hit.collider.transform.GetComponent<Collider>().bounds.center);
|
||||
studPos += localCenter;
|
||||
studPos.y = hit.point.y;
|
||||
studPos.y -= 0.089f; // supper ugly hack
|
||||
}
|
||||
|
||||
|
||||
currentStud = studPos;
|
||||
|
||||
GameObject brickObj = hit.collider.transform.parent.gameObject;
|
||||
|
||||
@@ -20,6 +20,10 @@ namespace Brickcraft.World
|
||||
private Dictionary<byte, List<Vector3>> meshes = new Dictionary<byte, List<Vector3>>();
|
||||
private Dictionary<Vector3, bool> added = new Dictionary<Vector3, bool>();
|
||||
|
||||
// collider mesh
|
||||
private List<Vector3> colliderVertices = new List<Vector3>();
|
||||
private List<int> colliderTriangles = new List<int>();
|
||||
|
||||
public void RenderChunk(Chunk chunk)
|
||||
{
|
||||
WorldBehaviour world = chunk.World;
|
||||
@@ -438,6 +442,9 @@ namespace Brickcraft.World
|
||||
chunkEntry.ParentChunk = chunk;
|
||||
chunkEntry.SliceIndex = i;
|
||||
|
||||
chunkEntry.ColliderVertices = colliderVertices.ToArray();
|
||||
chunkEntry.ColliderTriangles = colliderTriangles.ToArray();
|
||||
|
||||
if (WorldBehaviour.mode == 2) {
|
||||
Dictionary<byte, Vector3[]> meshList = new Dictionary<byte, Vector3[]>();
|
||||
foreach (byte block in meshes.Keys) {
|
||||
@@ -454,6 +461,9 @@ namespace Brickcraft.World
|
||||
meshes.Clear();
|
||||
added.Clear();
|
||||
|
||||
colliderVertices.Clear();
|
||||
colliderTriangles.Clear();
|
||||
|
||||
lock (WorldBehaviour.ChunkQueueLock)
|
||||
WorldBehaviour.ChunkSlicesToBuild.Enqueue(chunkEntry);
|
||||
|
||||
@@ -539,6 +549,21 @@ namespace Brickcraft.World
|
||||
foreach (int index in faceMap.triangles) {
|
||||
triangles.Add(index + vertexIndex);
|
||||
}
|
||||
|
||||
// Mesh collider, it is way more simple than the normal mesh, as it hasn't the studs
|
||||
vertexIndex = colliderVertices.Count;
|
||||
FaceMap colliderFaceMap = WorldBehaviour.colliderMeshMap[face];
|
||||
foreach (Vector3 vertice in colliderFaceMap.vertices) {
|
||||
Vector3 pos = new Vector3(
|
||||
vertice.x + (x * Server.brickWidth),
|
||||
vertice.y + (y * Server.brickHeight),
|
||||
vertice.z + (z * Server.brickWidth)
|
||||
);
|
||||
colliderVertices.Add(pos);
|
||||
}
|
||||
foreach (int index in colliderFaceMap.triangles) {
|
||||
colliderTriangles.Add(index + vertexIndex);
|
||||
}
|
||||
}
|
||||
|
||||
void spawnBrick (byte block, Vector3 pos) {
|
||||
|
||||
@@ -11,6 +11,9 @@ namespace Brickcraft.World
|
||||
public Vector2[] Uvs;
|
||||
public Chunk ParentChunk;
|
||||
public int SliceIndex;
|
||||
|
||||
public Vector3[] ColliderVertices;
|
||||
public int[] ColliderTriangles;
|
||||
public Dictionary<byte, Vector3[]> meshes;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -27,6 +27,7 @@ namespace Brickcraft.World
|
||||
|
||||
public Mesh cubeMesh;
|
||||
public Transform obj;
|
||||
public Transform brickColliderObj;
|
||||
|
||||
private int accumulator;
|
||||
|
||||
@@ -41,6 +42,7 @@ namespace Brickcraft.World
|
||||
public static readonly int MapMaxCoords = MapMaxChunkX * 16;
|
||||
|
||||
public static Dictionary<string, FaceMap> meshMap;
|
||||
public static Dictionary<string, FaceMap> colliderMeshMap;
|
||||
public static int mode = 3;
|
||||
/*
|
||||
* 1 = Original - minecraft
|
||||
@@ -50,6 +52,7 @@ namespace Brickcraft.World
|
||||
|
||||
private void Awake() {
|
||||
meshMap = (new FaceMapper(obj)).getMapping();
|
||||
colliderMeshMap = (new FaceMapper(brickColliderObj)).getMapping();
|
||||
}
|
||||
|
||||
void Start () {
|
||||
@@ -221,6 +224,15 @@ namespace Brickcraft.World
|
||||
mesh.RecalculateBounds();
|
||||
|
||||
filter.mesh = mesh;
|
||||
|
||||
// generate a much simpler collider mesh
|
||||
mesh = new Mesh();
|
||||
mesh.vertices = chunkEntry.ColliderVertices;
|
||||
mesh.triangles = chunkEntry.ColliderTriangles;
|
||||
|
||||
mesh.RecalculateNormals();
|
||||
mesh.RecalculateBounds();
|
||||
|
||||
chunkSliceObject.GetComponent<MeshCollider>().sharedMesh = mesh;
|
||||
}
|
||||
chunkEntry.ParentChunk.ClearDirtySlices();
|
||||
|
||||
BIN
Sketchup/3003SimpleCube.skb
Normal file
BIN
Sketchup/3003SimpleCube.skb
Normal file
Binary file not shown.
BIN
Sketchup/3003SimpleCube.skp
Normal file
BIN
Sketchup/3003SimpleCube.skp
Normal file
Binary file not shown.
Reference in New Issue
Block a user