Skip to content

Commit 5d01bf9

Browse files
feat: distributed authority sample collisions + damage [MTT-9026] (#211)
* asmdefs generated with dependencies mapped * one unnecessary dependency removed * renaming asmdefs & adding input assemblyinfo * avatar-side pickup/toss of pickupable object * adding a pickupable object, EnvironmentTransform, to scene with a spawner * adding explicitly inputsystem to player assembly * destructible object created, physics scripts imported * phyics base classes refactor & damage dealt to DestructibleObject * adding SO for player movement * prefabs updated post-merge, debug log removed * removing unused class, cooldown on damage, cleanup * routing damage message for locally owned non-kinematic pairs * networkupdateloop usage, masses reconfigured, gravity constantly applied
1 parent b1529d9 commit 5d01bf9

File tree

46 files changed

+1661
-186
lines changed

Some content is hidden

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

46 files changed

+1661
-186
lines changed

Experimental/DistributedAuthoritySample/Assets/Prefabs/Avatar.prefab

Lines changed: 33 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -190,7 +190,7 @@ CapsuleCollider:
190190
m_Bits: 0
191191
m_LayerOverridePriority: 0
192192
m_IsTrigger: 0
193-
m_ProvidesContacts: 0
193+
m_ProvidesContacts: 1
194194
m_Enabled: 1
195195
serializedVersion: 2
196196
m_Radius: 0.5
@@ -213,6 +213,7 @@ GameObject:
213213
- component: {fileID: 4903152183366241606}
214214
- component: {fileID: 8197190117666738524}
215215
- component: {fileID: 539700041658036575}
216+
- component: {fileID: 4655812346339390596}
216217
m_Layer: 0
217218
m_Name: Avatar
218219
m_TagString: Untagged
@@ -292,18 +293,18 @@ MonoBehaviour:
292293
InLocalSpace: 0
293294
Interpolate: 1
294295
SlerpPosition: 0
295-
m_Rigidbody: {fileID: 4745766379562620470}
296+
m_CollisionType: 1
297+
m_CollisionDamage: 0
298+
m_DebugCollisions: 0
299+
m_DebugDamage: 0
300+
m_Colliders:
301+
- {fileID: 817796967242824188}
302+
m_MaxAngularVelocity: 10
303+
m_MaxVelocity: 10
296304
m_PlayerInput: {fileID: 4903152183366241606}
297305
m_AvatarInputs: {fileID: 8197190117666738524}
298-
m_WalkSpeed: 6
299-
m_SprintSpeed: 10
300-
m_Acceleration: 50
301-
m_DragCoefficient: 4
302-
m_AirControlFactor: 0.5
303-
m_JumpImpusle: 7
304-
m_CustomGravityMultiplier: 2
305-
m_RotationSpeed: 700
306-
m_GroundCheckDistance: 1.1
306+
m_AvatarInteractions: {fileID: 539700041658036575}
307+
m_PhysicsPlayerController: {fileID: 4655812346339390596}
307308
--- !u!54 &4745766379562620470
308309
Rigidbody:
309310
m_ObjectHideFlags: 0
@@ -312,7 +313,7 @@ Rigidbody:
312313
m_PrefabAsset: {fileID: 0}
313314
m_GameObject: {fileID: 5478015027486214707}
314315
serializedVersion: 4
315-
m_Mass: 1
316+
m_Mass: 10
316317
m_Drag: 0
317318
m_AngularDrag: 0.05
318319
m_CenterOfMass: {x: 0, y: 0, z: 0}
@@ -330,7 +331,7 @@ Rigidbody:
330331
m_IsKinematic: 1
331332
m_Interpolate: 0
332333
m_Constraints: 0
333-
m_CollisionDetection: 0
334+
m_CollisionDetection: 2
334335
--- !u!114 &-8100831418301897270
335336
MonoBehaviour:
336337
m_ObjectHideFlags: 0
@@ -358,8 +359,7 @@ MonoBehaviour:
358359
m_Script: {fileID: 11500000, guid: 62899f850307741f2a39c98a8b639597, type: 3}
359360
m_Name:
360361
m_EditorClassIdentifier:
361-
m_Actions: {fileID: -944628639613478452, guid: dcd1b4eb76b964f40afe6c0a3ca65c82,
362-
type: 3}
362+
m_Actions: {fileID: -944628639613478452, guid: dcd1b4eb76b964f40afe6c0a3ca65c82, type: 3}
363363
m_NotificationBehavior: 0
364364
m_UIInputModule: {fileID: 0}
365365
m_DeviceLostEvent:
@@ -389,23 +389,21 @@ MonoBehaviour:
389389
m_Script: {fileID: 11500000, guid: 7e9f71718dd134b14b300e378e98c718, type: 3}
390390
m_Name:
391391
m_EditorClassIdentifier:
392+
m_InteractActionReference: {fileID: 1781555164194001046, guid: dcd1b4eb76b964f40afe6c0a3ca65c82, type: 3}
392393
Move: {x: 0, y: 0}
393394
Look: {x: 0, y: 0}
394-
Jump: 0
395395
Sprint: 0
396396
AnalogMovement: 0
397397
CursorLocked: 1
398398
CursorInputForLook: 1
399-
m_InteractActionReference: {fileID: 1781555164194001046, guid: dcd1b4eb76b964f40afe6c0a3ca65c82,
400-
type: 3}
401399
--- !u!114 &539700041658036575
402400
MonoBehaviour:
403401
m_ObjectHideFlags: 0
404402
m_CorrespondingSourceObject: {fileID: 0}
405403
m_PrefabInstance: {fileID: 0}
406404
m_PrefabAsset: {fileID: 0}
407405
m_GameObject: {fileID: 5478015027486214707}
408-
m_Enabled: 1
406+
m_Enabled: 0
409407
m_EditorHideFlags: 0
410408
m_Script: {fileID: 11500000, guid: b47efef44cef74d9ca00f4913607f988, type: 3}
411409
m_Name:
@@ -415,8 +413,22 @@ MonoBehaviour:
415413
m_NetworkRigidbody: {fileID: -8100831418301897270}
416414
m_HoldTransform: {fileID: 3820763517226122587}
417415
m_InteractCollider: {fileID: 4881592427634173612}
418-
m_MinTossForce: 5
419-
m_MaxTossForce: 10
416+
m_MinTossForce: 500
417+
m_MaxTossForce: 1000
418+
--- !u!114 &4655812346339390596
419+
MonoBehaviour:
420+
m_ObjectHideFlags: 0
421+
m_CorrespondingSourceObject: {fileID: 0}
422+
m_PrefabInstance: {fileID: 0}
423+
m_PrefabAsset: {fileID: 0}
424+
m_GameObject: {fileID: 5478015027486214707}
425+
m_Enabled: 0
426+
m_EditorHideFlags: 0
427+
m_Script: {fileID: 11500000, guid: e222c86e1ae554b699fe6d68d3cf4ba9, type: 3}
428+
m_Name:
429+
m_EditorClassIdentifier:
430+
m_Rigidbody: {fileID: 4745766379562620470}
431+
m_PhysicsPlayerControllerSettings: {fileID: 11400000, guid: 1dd99ce80f3e54d03b20bf78d6ff2a40, type: 2}
420432
--- !u!1 &9009864878170659705
421433
GameObject:
422434
m_ObjectHideFlags: 0

Experimental/DistributedAuthoritySample/Assets/Prefabs/DistributableTransferableObject.prefab

Lines changed: 46 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ GameObject:
1616
- component: {fileID: -7368379283164171724}
1717
- component: {fileID: 6039897070700006726}
1818
- component: {fileID: 6689110374311511483}
19+
- component: {fileID: 6961888493949678523}
1920
m_Layer: 7
2021
m_Name: DistributableTransferableObject
2122
m_TagString: Untagged
@@ -107,7 +108,7 @@ BoxCollider:
107108
m_Bits: 0
108109
m_LayerOverridePriority: 0
109110
m_IsTrigger: 0
110-
m_ProvidesContacts: 0
111+
m_ProvidesContacts: 1
111112
m_Enabled: 1
112113
serializedVersion: 3
113114
m_Size: {x: 1, y: 1, z: 1}
@@ -122,8 +123,8 @@ MonoBehaviour:
122123
m_Enabled: 1
123124
m_EditorHideFlags: 0
124125
m_Script: {fileID: 11500000, guid: d5a57f767e5e46a458fc5d3c628d0cbb, type: 3}
125-
m_Name:
126-
m_EditorClassIdentifier:
126+
m_Name:
127+
m_EditorClassIdentifier:
127128
GlobalObjectIdHash: 2069120471
128129
InScenePlacedSourceGlobalObjectIdHash: 0
129130
DeferredDespawnTick: 0
@@ -143,7 +144,7 @@ Rigidbody:
143144
m_PrefabAsset: {fileID: 0}
144145
m_GameObject: {fileID: 893974733110552042}
145146
serializedVersion: 4
146-
m_Mass: 1
147+
m_Mass: 25
147148
m_Drag: 0
148149
m_AngularDrag: 0.05
149150
m_CenterOfMass: {x: 0, y: 0, z: 0}
@@ -158,10 +159,10 @@ Rigidbody:
158159
m_ImplicitCom: 1
159160
m_ImplicitTensor: 1
160161
m_UseGravity: 1
161-
m_IsKinematic: 0
162+
m_IsKinematic: 1
162163
m_Interpolate: 0
163164
m_Constraints: 0
164-
m_CollisionDetection: 0
165+
m_CollisionDetection: 2
165166
--- !u!114 &6039897070700006726
166167
MonoBehaviour:
167168
m_ObjectHideFlags: 0
@@ -172,8 +173,35 @@ MonoBehaviour:
172173
m_Enabled: 1
173174
m_EditorHideFlags: 0
174175
m_Script: {fileID: 11500000, guid: 54937e94f00ab46c8ae43b81027f342c, type: 3}
175-
m_Name:
176-
m_EditorClassIdentifier:
176+
m_Name:
177+
m_EditorClassIdentifier:
178+
--- !u!114 &6689110374311511483
179+
MonoBehaviour:
180+
m_ObjectHideFlags: 0
181+
m_CorrespondingSourceObject: {fileID: 0}
182+
m_PrefabInstance: {fileID: 0}
183+
m_PrefabAsset: {fileID: 0}
184+
m_GameObject: {fileID: 893974733110552042}
185+
m_Enabled: 1
186+
m_EditorHideFlags: 0
187+
m_Script: {fileID: 11500000, guid: f6c0be61502bb534f922ebb746851216, type: 3}
188+
m_Name:
189+
m_EditorClassIdentifier:
190+
UseRigidBodyForMotion: 1
191+
AutoUpdateKinematicState: 1
192+
AutoSetKinematicOnDespawn: 1
193+
--- !u!114 &6961888493949678523
194+
MonoBehaviour:
195+
m_ObjectHideFlags: 0
196+
m_CorrespondingSourceObject: {fileID: 0}
197+
m_PrefabInstance: {fileID: 0}
198+
m_PrefabAsset: {fileID: 0}
199+
m_GameObject: {fileID: 893974733110552042}
200+
m_Enabled: 1
201+
m_EditorHideFlags: 0
202+
m_Script: {fileID: 11500000, guid: 496a933d305aa4e1c926bd7d19b42f46, type: 3}
203+
m_Name:
204+
m_EditorClassIdentifier:
177205
AuthorityMode: 1
178206
UseUnreliableDeltas: 0
179207
SyncPositionX: 1
@@ -194,18 +222,13 @@ MonoBehaviour:
194222
InLocalSpace: 0
195223
Interpolate: 1
196224
SlerpPosition: 0
197-
--- !u!114 &6689110374311511483
198-
MonoBehaviour:
199-
m_ObjectHideFlags: 0
200-
m_CorrespondingSourceObject: {fileID: 0}
201-
m_PrefabInstance: {fileID: 0}
202-
m_PrefabAsset: {fileID: 0}
203-
m_GameObject: {fileID: 893974733110552042}
204-
m_Enabled: 1
205-
m_EditorHideFlags: 0
206-
m_Script: {fileID: 11500000, guid: f6c0be61502bb534f922ebb746851216, type: 3}
207-
m_Name:
208-
m_EditorClassIdentifier:
209-
UseRigidBodyForMotion: 1
210-
AutoUpdateKinematicState: 1
211-
AutoSetKinematicOnDespawn: 1
225+
m_CollisionType: 2
226+
m_CollisionDamage: 5
227+
m_DebugCollisions: 0
228+
m_DebugDamage: 0
229+
m_Colliders:
230+
- {fileID: 7690746213975220858}
231+
m_MaxAngularVelocity: 10
232+
m_MaxVelocity: 10
233+
m_StartingHealth: 100
234+
m_IntangibleDurationAfterDamage: 2

Experimental/DistributedAuthoritySample/Assets/ScriptableObjects.meta

Lines changed: 8 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
%YAML 1.1
2+
%TAG !u! tag:unity3d.com,2011:
3+
--- !u!114 &11400000
4+
MonoBehaviour:
5+
m_ObjectHideFlags: 0
6+
m_CorrespondingSourceObject: {fileID: 0}
7+
m_PrefabInstance: {fileID: 0}
8+
m_PrefabAsset: {fileID: 0}
9+
m_GameObject: {fileID: 0}
10+
m_Enabled: 1
11+
m_EditorHideFlags: 0
12+
m_Script: {fileID: 11500000, guid: 48976c2ba473849eab61b8e1398b8644, type: 3}
13+
m_Name: AvatarPhysicsPlayerControllerSettings
14+
m_EditorClassIdentifier:
15+
WalkSpeed: 6
16+
SprintSpeed: 10
17+
Acceleration: 50
18+
DragCoefficient: 4
19+
AirControlFactor: 0.5
20+
JumpImpusle: 80
21+
CustomGravityMultiplier: 2
22+
RotationSpeed: 13
23+
GroundCheckDistance: 1.1

Experimental/DistributedAuthoritySample/Assets/ScriptableObjects/AvatarPhysicsPlayerControllerSettings.asset.meta

Lines changed: 8 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Experimental/DistributedAuthoritySample/Assets/Scripts/Editor/AvatarTransformEditor.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
namespace Unity.Multiplayer.Samples.SocialHub.Editor
88
{
99
[CustomEditor(typeof(AvatarTransform))]
10-
class DerivedComponentEditor : UnityEditor.Editor
10+
class AvatarTransformEditor : UnityEditor.Editor
1111
{
1212
public override VisualElement CreateInspectorGUI()
1313
{
Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
using Unity.Multiplayer.Samples.SocialHub.Gameplay;
2+
using UnityEditor;
3+
using UnityEditor.UIElements;
4+
using UnityEngine;
5+
using UnityEngine.UIElements;
6+
7+
namespace Unity.Multiplayer.Samples.SocialHub.Editor
8+
{
9+
[CustomEditor(typeof(DestructibleObject))]
10+
class DestructibleObjectEditor : UnityEditor.Editor
11+
{
12+
public override VisualElement CreateInspectorGUI()
13+
{
14+
// Create a new VisualElement to be the root of the inspector UI
15+
var root = new VisualElement();
16+
17+
// Generate default inspector for AvatarTransform
18+
serializedObject.Update();
19+
SerializedProperty property = serializedObject.GetIterator();
20+
property.NextVisible(true); // Skip the script field
21+
while (property.NextVisible(false))
22+
{
23+
var propertyField = new PropertyField(property);
24+
root.Add(propertyField);
25+
}
26+
27+
serializedObject.ApplyModifiedProperties();
28+
29+
return root;
30+
}
31+
}
32+
}

Experimental/DistributedAuthoritySample/Assets/Scripts/Editor/DestructibleObjectEditor.cs.meta

Lines changed: 2 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
using Unity.Multiplayer.Samples.SocialHub.Physics;
2+
using UnityEngine;
3+
using UnityEditor;
4+
using UnityEditor.UIElements;
5+
using UnityEngine.UIElements;
6+
7+
namespace Unity.Multiplayer.Samples.SocialHub.Editor
8+
{
9+
[CustomEditor(typeof(PhysicsObjectMotion))]
10+
class PhysicsObjectMotionEditor : UnityEditor.Editor
11+
{
12+
public override VisualElement CreateInspectorGUI()
13+
{
14+
// Create a new VisualElement to be the root of the inspector UI
15+
var root = new VisualElement();
16+
17+
// Generate default inspector for AvatarTransform
18+
serializedObject.Update();
19+
SerializedProperty property = serializedObject.GetIterator();
20+
property.NextVisible(true); // Skip the script field
21+
while (property.NextVisible(false))
22+
{
23+
var propertyField = new PropertyField(property);
24+
root.Add(propertyField);
25+
}
26+
27+
serializedObject.ApplyModifiedProperties();
28+
29+
return root;
30+
}
31+
}
32+
}

Experimental/DistributedAuthoritySample/Assets/Scripts/Editor/PhysicsObjectMotionEditor.cs.meta

Lines changed: 2 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)