Skip to content

Commit 5c71cb8

Browse files
committed
Update UnityPhysicsSamples
Compatible with Unity.Physics 0.3.1-preview
1 parent 09fd52f commit 5c71cb8

File tree

77 files changed

+7079
-3290
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

77 files changed

+7079
-3290
lines changed

UnityPhysicsSamples/Assets/Common/Materials/Colorful.mat

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -8,14 +8,13 @@ Material:
88
m_PrefabInstance: {fileID: 0}
99
m_PrefabAsset: {fileID: 0}
1010
m_Name: Colorful
11-
m_Shader: {fileID: 4800000, guid: 933532a4fcc9baf4fa0491de14d08ed7, type: 3}
11+
m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0}
1212
m_ShaderKeywords: _SPECULARHIGHLIGHTS_OFF
1313
m_LightmapFlags: 4
1414
m_EnableInstancingVariants: 1
1515
m_DoubleSidedGI: 0
16-
m_CustomRenderQueue: 2050
17-
stringTagMap:
18-
RenderType: Opaque
16+
m_CustomRenderQueue: -1
17+
stringTagMap: {}
1918
disabledShaderPasses: []
2019
m_SavedProperties:
2120
serializedVersion: 3
@@ -91,7 +90,6 @@ Material:
9190
- _WorkflowMode: 1
9291
- _ZWrite: 1
9392
m_Colors:
94-
- _BaseColor: {r: 1, g: 0.3940544, b: 0.38207546, a: 1}
9593
- _Color: {r: 1, g: 0.39405444, b: 0.3820755, a: 1}
9694
- _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
9795
- _SpecColor: {r: 0.2, g: 0.2, b: 0.2, a: 1}

UnityPhysicsSamples/Assets/Common/Materials/PhysicsDynamicMaterial.mat

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -21,14 +21,13 @@ Material:
2121
m_PrefabInstance: {fileID: 0}
2222
m_PrefabAsset: {fileID: 0}
2323
m_Name: PhysicsDynamicMaterial
24-
m_Shader: {fileID: 4800000, guid: 933532a4fcc9baf4fa0491de14d08ed7, type: 3}
24+
m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0}
2525
m_ShaderKeywords: _EMISSION _SPECULARHIGHLIGHTS_OFF
2626
m_LightmapFlags: 2
2727
m_EnableInstancingVariants: 1
2828
m_DoubleSidedGI: 0
29-
m_CustomRenderQueue: 2050
30-
stringTagMap:
31-
RenderType: Opaque
29+
m_CustomRenderQueue: -1
30+
stringTagMap: {}
3231
disabledShaderPasses: []
3332
m_SavedProperties:
3433
serializedVersion: 3
@@ -136,8 +135,6 @@ Material:
136135
- Color_4F18FDD0: {r: 0, g: 0, b: 0, a: 0}
137136
- Color_AC52ADAA: {r: 0.5943396, g: 0.5376669, b: 0.08130119, a: 0}
138137
- _BandColor: {r: 0.9921569, g: 0.7215686, b: 0.07450981, a: 0}
139-
- _BaseColor: {r: 0.92156863, g: 0.7137255, b: 0.19215667, a: 0}
140-
- _BaseColour: {r: 1, g: 1, b: 1, a: 1}
141138
- _CellColorA: {r: 1, g: 1, b: 1, a: 1}
142139
- _CellColorB: {r: 0.8, g: 0.8, b: 0.8, a: 1}
143140
- _Color: {r: 0.92156863, g: 0.7137255, b: 0.19215682, a: 1}

UnityPhysicsSamples/Assets/Common/Materials/PhysicsKinematicMaterial.mat

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -21,14 +21,13 @@ Material:
2121
m_PrefabInstance: {fileID: 0}
2222
m_PrefabAsset: {fileID: 0}
2323
m_Name: PhysicsKinematicMaterial
24-
m_Shader: {fileID: 4800000, guid: 933532a4fcc9baf4fa0491de14d08ed7, type: 3}
24+
m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0}
2525
m_ShaderKeywords: _EMISSION _SPECULARHIGHLIGHTS_OFF
2626
m_LightmapFlags: 2
2727
m_EnableInstancingVariants: 1
2828
m_DoubleSidedGI: 0
29-
m_CustomRenderQueue: 2050
30-
stringTagMap:
31-
RenderType: Opaque
29+
m_CustomRenderQueue: -1
30+
stringTagMap: {}
3231
disabledShaderPasses: []
3332
m_SavedProperties:
3433
serializedVersion: 3
@@ -96,6 +95,7 @@ Material:
9695
- _Glossiness: 0.5
9796
- _GlossyReflections: 1
9897
- _Metallic: 0
98+
- _Mode: 0
9999
- _OcclusionStrength: 1
100100
- _Parallax: 0.02
101101
- _QueueOffset: 0
@@ -113,7 +113,6 @@ Material:
113113
- Color_4F18FDD0: {r: 0.6627451, g: 0.05882353, b: 0.56078434, a: 0}
114114
- Color_AC52ADAA: {r: 0.39626288, g: 0.12482201, b: 0.4811321, a: 0}
115115
- _BandColor: {r: 0.65882355, g: 0.058823533, b: 0.56078434, a: 0}
116-
- _BaseColor: {r: 0.5, g: 0.5, b: 0.5, a: 1}
117116
- _Color: {r: 0.5, g: 0.5, b: 0.5, a: 1}
118117
- _EmissionColor: {r: 0, g: 0.005882353, b: 0.34509805, a: 1}
119118
- _SpecColor: {r: 0.2, g: 0.2, b: 0.2, a: 1}

UnityPhysicsSamples/Assets/Common/Materials/PhysicsStaticMaterial.mat

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,7 @@ Material:
88
m_PrefabInstance: {fileID: 0}
99
m_PrefabAsset: {fileID: 0}
1010
m_Name: PhysicsStaticMaterial
11-
m_Shader: {fileID: -6465566751694194690, guid: 284c017caead21c4185658d8d466797c,
12-
type: 3}
11+
m_Shader: {fileID: 4800000, guid: 3d31450a5235a479fa7f005559c2e1a9, type: 3}
1312
m_ShaderKeywords:
1413
m_LightmapFlags: 4
1514
m_EnableInstancingVariants: 1
@@ -113,8 +112,6 @@ Material:
113112
- _WorkflowMode: 1
114113
- _ZWrite: 1
115114
m_Colors:
116-
- _BaseColor: {r: 0.6603774, g: 0.6426353, b: 0.05918475, a: 0}
117-
- _BaseColour: {r: 0.8301887, g: 0.8301887, b: 0.8301887, a: 1}
118-
- _Color: {r: 1, g: 1, b: 1, a: 1}
115+
- _Color: {r: 0.8301887, g: 0.8301887, b: 0.8301887, a: 1}
119116
- _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
120117
- _SpecColor: {r: 0.2, g: 0.2, b: 0.2, a: 1}

UnityPhysicsSamples/Assets/Common/Materials/PhysicsStaticTerrainMaterial.mat

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,7 @@ Material:
88
m_PrefabInstance: {fileID: 0}
99
m_PrefabAsset: {fileID: 0}
1010
m_Name: PhysicsStaticTerrainMaterial
11-
m_Shader: {fileID: -6465566751694194690, guid: 284c017caead21c4185658d8d466797c,
12-
type: 3}
11+
m_Shader: {fileID: 4800000, guid: 3d31450a5235a479fa7f005559c2e1a9, type: 3}
1312
m_ShaderKeywords: _TOPDOWN_ON
1413
m_LightmapFlags: 4
1514
m_EnableInstancingVariants: 1
@@ -113,7 +112,6 @@ Material:
113112
- _WorkflowMode: 1
114113
- _ZWrite: 1
115114
m_Colors:
116-
- _BaseColour: {r: 0.8301887, g: 0.8301887, b: 0.8301887, a: 1}
117-
- _Color: {r: 1, g: 1, b: 1, a: 1}
115+
- _Color: {r: 0.8301887, g: 0.8301887, b: 0.8301887, a: 1}
118116
- _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
119117
- _SpecColor: {r: 0.2, g: 0.2, b: 0.2, a: 1}

UnityPhysicsSamples/Assets/Common/Prefabs/Physics Scene Basic Elements.prefab

Lines changed: 27 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -246,7 +246,6 @@ GameObject:
246246
m_Component:
247247
- component: {fileID: 1357867727081484656}
248248
- component: {fileID: 1357867727081484657}
249-
- component: {fileID: 1357867727081484663}
250249
m_Layer: 0
251250
m_Name: Directional Light
252251
m_TagString: Untagged
@@ -276,8 +275,9 @@ Light:
276275
m_PrefabAsset: {fileID: 0}
277276
m_GameObject: {fileID: 1357867727081484658}
278277
m_Enabled: 1
279-
serializedVersion: 9
278+
serializedVersion: 10
280279
m_Type: 1
280+
m_Shape: 0
281281
m_Color: {r: 1, g: 0.95686275, b: 0.8392157, a: 1}
282282
m_Intensity: 1
283283
m_Range: 10
@@ -328,19 +328,6 @@ Light:
328328
m_UseBoundingSphereOverride: 0
329329
m_ShadowRadius: 0
330330
m_ShadowAngle: 0
331-
--- !u!114 &1357867727081484663
332-
MonoBehaviour:
333-
m_ObjectHideFlags: 0
334-
m_CorrespondingSourceObject: {fileID: 0}
335-
m_PrefabInstance: {fileID: 0}
336-
m_PrefabAsset: {fileID: 0}
337-
m_GameObject: {fileID: 1357867727081484658}
338-
m_Enabled: 1
339-
m_EditorHideFlags: 0
340-
m_Script: {fileID: 11500000, guid: 474bcb49853aa07438625e644c072ee6, type: 3}
341-
m_Name:
342-
m_EditorClassIdentifier:
343-
m_UsePipelineSettings: 1
344331
--- !u!1 &1357867727155988469
345332
GameObject:
346333
m_ObjectHideFlags: 0
@@ -495,6 +482,31 @@ PrefabInstance:
495482
propertyPath: m_Name
496483
value: Floor
497484
objectReference: {fileID: 0}
485+
- target: {fileID: 1716085102806623427, guid: ebfe93b387bf4a54989a6f911bdc11d1,
486+
type: 3}
487+
propertyPath: m_Orientation.value.w
488+
value: 1
489+
objectReference: {fileID: 0}
490+
- target: {fileID: 3945518518046659535, guid: ebfe93b387bf4a54989a6f911bdc11d1,
491+
type: 3}
492+
propertyPath: m_Capsule.Height
493+
value: 1
494+
objectReference: {fileID: 0}
495+
- target: {fileID: 3945518518046659535, guid: ebfe93b387bf4a54989a6f911bdc11d1,
496+
type: 3}
497+
propertyPath: m_Capsule.Axis
498+
value: 0
499+
objectReference: {fileID: 0}
500+
- target: {fileID: 3945518518046659535, guid: ebfe93b387bf4a54989a6f911bdc11d1,
501+
type: 3}
502+
propertyPath: m_Cylinder.Axis
503+
value: 2
504+
objectReference: {fileID: 0}
505+
- target: {fileID: 3945518518046659535, guid: ebfe93b387bf4a54989a6f911bdc11d1,
506+
type: 3}
507+
propertyPath: m_SphereRadius
508+
value: 0.5
509+
objectReference: {fileID: 0}
498510
- target: {fileID: 7682084060178167355, guid: ebfe93b387bf4a54989a6f911bdc11d1,
499511
type: 3}
500512
propertyPath: m_LocalPosition.y
@@ -545,31 +557,6 @@ PrefabInstance:
545557
propertyPath: m_LocalEulerAnglesHint.z
546558
value: 0
547559
objectReference: {fileID: 0}
548-
- target: {fileID: 3945518518046659535, guid: ebfe93b387bf4a54989a6f911bdc11d1,
549-
type: 3}
550-
propertyPath: m_Capsule.Height
551-
value: 1
552-
objectReference: {fileID: 0}
553-
- target: {fileID: 3945518518046659535, guid: ebfe93b387bf4a54989a6f911bdc11d1,
554-
type: 3}
555-
propertyPath: m_Capsule.Axis
556-
value: 0
557-
objectReference: {fileID: 0}
558-
- target: {fileID: 3945518518046659535, guid: ebfe93b387bf4a54989a6f911bdc11d1,
559-
type: 3}
560-
propertyPath: m_Cylinder.Axis
561-
value: 2
562-
objectReference: {fileID: 0}
563-
- target: {fileID: 3945518518046659535, guid: ebfe93b387bf4a54989a6f911bdc11d1,
564-
type: 3}
565-
propertyPath: m_SphereRadius
566-
value: 0.5
567-
objectReference: {fileID: 0}
568-
- target: {fileID: 1716085102806623427, guid: ebfe93b387bf4a54989a6f911bdc11d1,
569-
type: 3}
570-
propertyPath: m_Orientation.value.w
571-
value: 1
572-
objectReference: {fileID: 0}
573560
- target: {fileID: 7890845515503907925, guid: ebfe93b387bf4a54989a6f911bdc11d1,
574561
type: 3}
575562
propertyPath: m_SerializedData.mesh

UnityPhysicsSamples/Assets/Common/Scripts/MousePick/MousePickBehaviour.cs

Lines changed: 24 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,10 @@
1+
using System;
12
using Unity.Burst;
23
using Unity.Collections;
34
using Unity.Entities;
45
using Unity.Jobs;
56
using Unity.Mathematics;
7+
using Unity.Physics;
68
using Unity.Physics.Systems;
79
using Unity.Transforms;
810
using UnityEngine;
@@ -14,32 +16,28 @@ namespace Unity.Physics.Extensions
1416
public class ColliderUtils
1517
{
1618
[BurstCompile]
17-
public static unsafe bool IsTrigger(BlobAssetReference<Collider> collider, ColliderKey key)
19+
public static bool IsTrigger(BlobAssetReference<Collider> collider, ColliderKey key)
1820
{
1921
bool bIsTrigger = false;
20-
var c = (Collider*)collider.GetUnsafePtr();
22+
unsafe
2123
{
22-
var cc = ((ConvexCollider*)c);
23-
if (cc->CollisionType != CollisionType.Convex)
24+
var c = (Collider*)collider.GetUnsafePtr();
2425
{
25-
c->GetLeaf(key, out ChildCollider child);
26-
cc = (ConvexCollider*)child.Collider;
27-
Assert.IsTrue(cc->CollisionType == CollisionType.Convex);
26+
var cc = ((ConvexCollider*)c);
27+
if (cc->CollisionType != CollisionType.Convex)
28+
{
29+
c->GetLeaf(key, out ChildCollider child);
30+
cc = (ConvexCollider*)child.Collider;
31+
Assert.IsTrue(cc->CollisionType == CollisionType.Convex);
32+
}
33+
bIsTrigger = cc->Material.IsTrigger;
2834
}
29-
bIsTrigger = cc->Material.IsTrigger;
3035
}
3136
return bIsTrigger;
3237
}
3338
}
3439

3540
// A mouse pick collector which stores every hit. Based off the ClosestHitCollector
36-
// Creating an ICollector<RaycastHit> specifically as the base IQueryResult interface doesn't have RigidBodyIndex etc
37-
// This is a workaround to filter out static bodies and trigger volumes from the mouse picker.
38-
// Currently filtered in the TransformHits function when the Body Index is available.
39-
// This interface will be changed in future so that hits can be filtered appropriately during AddHit instead.
40-
// https://github.com/Unity-Technologies/Unity.Physics/issues/256
41-
// With this temporary filtering workaround CastRay will return true even if we filtered hits.
42-
// Hence, the MaxFraction is checked instead to see if a true hit was collected.
4341
[BurstCompile]
4442
public struct MousePickCollector : ICollector<RaycastHit>
4543
{
@@ -51,13 +49,11 @@ public struct MousePickCollector : ICollector<RaycastHit>
5149
public float MaxFraction { get; private set; }
5250
public int NumHits { get; private set; }
5351

54-
private RaycastHit m_OldHit;
5552
private RaycastHit m_ClosestHit;
5653
public RaycastHit Hit => m_ClosestHit;
5754

5855
public MousePickCollector(float maxFraction, NativeSlice<RigidBody> rigidBodies, int numDynamicBodies)
5956
{
60-
m_OldHit = default(RaycastHit);
6157
m_ClosestHit = default(RaycastHit);
6258
MaxFraction = maxFraction;
6359
NumHits = 0;
@@ -71,44 +67,27 @@ public MousePickCollector(float maxFraction, NativeSlice<RigidBody> rigidBodies,
7167
public bool AddHit(RaycastHit hit)
7268
{
7369
Assert.IsTrue(hit.Fraction < MaxFraction);
74-
MaxFraction = hit.Fraction;
75-
m_OldHit = m_ClosestHit;
76-
m_ClosestHit = hit;
77-
NumHits = 1;
78-
return true;
79-
}
8070

81-
void CheckIsAcceptable(float oldFraction)
82-
{
83-
var isAcceptable = (0 <= m_ClosestHit.RigidBodyIndex) && (m_ClosestHit.RigidBodyIndex < NumDynamicBodies);
84-
if (isAcceptable)
71+
var isAcceptable = (hit.RigidBodyIndex >= 0) && (hit.RigidBodyIndex < NumDynamicBodies);
72+
if(IgnoreTriggers)
8573
{
86-
var body = Bodies[m_ClosestHit.RigidBodyIndex];
87-
if (IgnoreTriggers)
88-
{
89-
isAcceptable = !ColliderUtils.IsTrigger(body.Collider, m_ClosestHit.ColliderKey);
90-
}
74+
var body = Bodies[hit.RigidBodyIndex];
75+
isAcceptable = isAcceptable && !ColliderUtils.IsTrigger(body.Collider, hit.ColliderKey);
9176
}
77+
9278
if (!isAcceptable)
9379
{
94-
m_ClosestHit = m_OldHit;
95-
NumHits = 0;
96-
MaxFraction = oldFraction;
97-
m_OldHit = default(RaycastHit);
80+
return false;
9881
}
99-
}
10082

101-
public void TransformNewHits(int oldNumHits, float oldFraction, MTransform transform, uint numSubKeyBits, uint subKey)
102-
{
103-
m_ClosestHit.Transform(transform, numSubKeyBits, subKey);
83+
MaxFraction = hit.Fraction;
84+
m_ClosestHit = hit;
85+
NumHits = 1;
86+
return true;
10487
}
10588

106-
public void TransformNewHits(int oldNumHits, float oldFraction, MTransform transform, int rigidBodyIndex)
107-
{
108-
m_ClosestHit.Transform(transform, rigidBodyIndex);
109-
CheckIsAcceptable(oldFraction);
110-
}
11189
#endregion
90+
11291
}
11392

11493
public struct MousePick : IComponentData

UnityPhysicsSamples/Assets/Common/Scripts/RayTracer/RayTracerSystem.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -83,7 +83,7 @@ public unsafe void Execute(int index)
8383

8484
float3 targetImagePlane = Request.ImageCenter + Request.Up * Request.PlaneHalfExtents * yFrac + Request.Right * Request.PlaneHalfExtents * xFrac;
8585
float3 rayDir = Request.RayLength * (Request.PinHole - targetImagePlane);
86-
86+
8787
RaycastHit hit;
8888
bool hasHit;
8989
if (Request.CastSphere)
@@ -195,7 +195,7 @@ protected override void OnCreate()
195195
m_Requests = new List<RayRequest>();
196196
m_Results = new List<RayResult>();
197197
}
198-
198+
199199
protected override JobHandle OnUpdate(JobHandle inputDeps)
200200
{
201201
if (m_Requests == null || m_Requests.Count == 0)

0 commit comments

Comments
 (0)