From e01aae19e7018eec6ed5a0f29ae903a6d57e9f64 Mon Sep 17 00:00:00 2001 From: Anonymous user <85908826+j5rlLqM-rvsrY96V-GpVJP0F-IZFesRzy-ShMoz@users.noreply.github.com> Date: Sat, 19 Jun 2021 23:02:42 +0000 Subject: [PATCH 1/5] Add 3 colliders Added SphereCollider, CapsuleCollider and MeshCollider. --- unitypack/engine/__init__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/unitypack/engine/__init__.py b/unitypack/engine/__init__.py index e2f73cb..76dfc23 100644 --- a/unitypack/engine/__init__.py +++ b/unitypack/engine/__init__.py @@ -9,7 +9,7 @@ from .movie import MovieTexture from .object import GameObject from .particle import EllipsoidParticleEmitter, MeshParticleEmitter, ParticleEmitter, ParticleSystem -from .physics import BoxCollider, BoxCollider2D, Collider, Collider2D, Rigidbody2D +from .physics import BoxCollider, SphereCollider, CapsuleCollider, BoxCollider2D, Collider, Collider2D, MeshCollider, Rigidbody2D from .renderer import MeshRenderer, ParticleRenderer, ParticleSystemRenderer, Renderer from .text import TextAsset, TextMesh, Shader from .texture import Material, Sprite, Texture2D, StreamingInfo From 48656941e0b3fc26b2f64bb10fd0996b57406761 Mon Sep 17 00:00:00 2001 From: Anonymous user <85908826+j5rlLqM-rvsrY96V-GpVJP0F-IZFesRzy-ShMoz@users.noreply.github.com> Date: Sat, 19 Jun 2021 23:07:17 +0000 Subject: [PATCH 2/5] Add 3 colliders Added SphereCollider, CapsuleCollider and MeshCollider. --- unitypack/engine/physics.py | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/unitypack/engine/physics.py b/unitypack/engine/physics.py index bb3511d..098792f 100644 --- a/unitypack/engine/physics.py +++ b/unitypack/engine/physics.py @@ -14,6 +14,23 @@ class BoxCollider(Collider): size = field("m_Size") +class SphereCollider(Collider): + center = field("m_Center") + radius = field("m_Radius") + + +class CapsuleCollider(SphereCollider): + height = field("m_Height") + direction = field("m_Direction") + + +class MeshCollider(Collider): + convex = field("m_Convex", bool) + cooking_options = field("m_CookingOptions") + skin_width = field("m_SkinWidth") + mesh = field("m_Mesh") + + class Collider2D(Behaviour): is_trigger = field("m_IsTrigger") material = field("m_Material") From b47696fac92686ff584c35c6026d0386587e6e98 Mon Sep 17 00:00:00 2001 From: Anonymous user <85908826+j5rlLqM-rvsrY96V-GpVJP0F-IZFesRzy-ShMoz@users.noreply.github.com> Date: Sat, 19 Jun 2021 23:35:04 +0000 Subject: [PATCH 3/5] Add MeshRenderer & reduce code - Added MeshRenderer - Added RendererBase and ParticleRendererBase to reduce code while achieving the same result. --- unitypack/engine/renderer.py | 30 +++++++++++++++++++----------- 1 file changed, 19 insertions(+), 11 deletions(-) diff --git a/unitypack/engine/renderer.py b/unitypack/engine/renderer.py index d5c836f..2705fd3 100644 --- a/unitypack/engine/renderer.py +++ b/unitypack/engine/renderer.py @@ -18,7 +18,7 @@ class ShadowCastingMode(IntEnum): ShadowsOnly = 3 -class Renderer(Component): +class RendererBase(Component): enabled = field("m_Enabled", bool) lightmap_index = field("m_LightmapIndex") materials = field("m_Materials") @@ -28,17 +28,20 @@ class Renderer(Component): shadow_casting_mode = field("m_CastShadows", ShadowCastingMode) sorting_layer_id = field("m_SortingLayerID") sorting_order = field("m_SortingOrder") - use_light_probes = field("m_UseLightProbes", bool) lightmap_index_dynamic = field("m_LightmapIndexDynamic") lightmap_tiling_offset = field("m_LightmapTilingOffset") lightmap_tiling_offset_dynamic = field("m_LightmapTilingOffsetDynamic") static_batch_root = field("m_StaticBatchRoot") - subset_indices = field("m_SubsetIndices") @property def material(self): return self.materials[0] + +class Renderer(RendererBase): + use_light_probes = field("m_UseLightProbes", bool) + subset_indices = field("m_SubsetIndices") + class ParticleSystemRenderMode(IntEnum): Billboard = 0 @@ -55,23 +58,29 @@ class ParticleSystemSortMode(IntEnum): YoungestInFront = 3 -class MeshRenderer(Component): - pass +class MeshRenderer(RendererBase): + use_light_probes = field("m_LightProbeUsage", bool) #Note that it's "...Usage", not "Use..." + additional_vertex_streams = field("m_AdditionalVertexStreams") + dynamic_occludee = field("m_DynamicOccludee") + light_probe_volume_override = field("m_LightProbeVolumeOverride") + motion_vectors = field("m_MotionVectors", bool) + sorting_layer = field("m_SortingLayer") + static_batch_info = field("m_StaticBatchInfo") -class ParticleRenderer(Renderer): +class ParticleRendererBase(Renderer): camera_velocity_scale = field("m_CameraVelocityScale") length_scale = field("m_LengthScale") max_particle_size = field("m_MaxParticleSize") velocity_scale = field("m_VelocityScale") + + +class ParticleRenderer(ParticleRendererBase): stretch_particles = field("m_StretchParticles") uv_animation = field("UV Animation") -class ParticleSystemRenderer(Renderer): - camera_velocity_scale = field("m_CameraVelocityScale") - length_scale = field("m_LengthScale") - max_particle_size = field("m_MaxParticleSize") +class ParticleSystemRenderer(ParticleRendererBase): mesh = field("m_Mesh") mesh1 = field("m_Mesh1") mesh2 = field("m_Mesh2") @@ -80,4 +89,3 @@ class ParticleSystemRenderer(Renderer): render_mode = field("m_RenderMode", ParticleSystemRenderMode) sort_mode = field("m_SortMode", ParticleSystemSortMode) sorting_fudge = field("m_SortingFudge") - velocity_scale = field("m_VelocityScale") From b953aa41ae92327313cee2a05fdbf33e7a9a7b9d Mon Sep 17 00:00:00 2001 From: Anonymous user <85908826+j5rlLqM-rvsrY96V-GpVJP0F-IZFesRzy-ShMoz@users.noreply.github.com> Date: Sat, 19 Jun 2021 23:36:45 +0000 Subject: [PATCH 4/5] Add MeshFilter Added the one value MeshFilter has. --- unitypack/engine/mesh.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/unitypack/engine/mesh.py b/unitypack/engine/mesh.py index 6f43aef..2a223bf 100644 --- a/unitypack/engine/mesh.py +++ b/unitypack/engine/mesh.py @@ -39,4 +39,4 @@ class VertexData(Object): class MeshFilter(Component): - pass + mesh = field("m_Mesh") From e529954146a6c539e5f639b7808fd795a8ad963b Mon Sep 17 00:00:00 2001 From: Anonymous user <85908826+j5rlLqM-rvsrY96V-GpVJP0F-IZFesRzy-ShMoz@users.noreply.github.com> Date: Sun, 11 Jul 2021 17:59:40 +0000 Subject: [PATCH 5/5] Fix x-mirroring of models I had a headache trying to figure out what was wrong with my code. Turns out it wasn't my code but this code. Might have to do with the specific Unity version? --- unitypack/export.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/unitypack/export.py b/unitypack/export.py index 5337bbb..2db2f08 100644 --- a/unitypack/export.py +++ b/unitypack/export.py @@ -28,7 +28,7 @@ def read(self, buf): return self def __str__(self): - return "%s %s %s" % (-self.x, self.y, self.z) + return "%s %s %s" % (self.x, self.y, self.z) class OBJVector4(OBJVector3): @@ -147,7 +147,7 @@ def __init__(self, mesh): @staticmethod def face_str(indices, coords, normals): ret = ["f "] - for i in indices[::-1]: + for i in indices: ret.append(str(i + 1)) if coords or normals: ret.append("/")