Client Movement not working

dev-ali
Ali Sharoz 2 months ago
parent 8f28b4cd51
commit 6e7252e04e

@ -19,7 +19,7 @@
"ReplicationFeatures": 1, "ReplicationFeatures": 1,
"InputTransferMode": 0, "InputTransferMode": 0,
"SimulationUpdateTimeMode": 0, "SimulationUpdateTimeMode": 0,
"PlayerCount": 10, "PlayerCount": 2,
"TickRateSelection": { "TickRateSelection": {
"Client": 64, "Client": 64,
"ServerIndex": 0, "ServerIndex": 0,

@ -7,7 +7,7 @@ PhysicMaterial:
m_PrefabInstance: {fileID: 0} m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0} m_PrefabAsset: {fileID: 0}
m_Name: Friction m_Name: Friction
dynamicFriction: 0.069989614 dynamicFriction: 0.069869936
staticFriction: 1 staticFriction: 1
bounciness: 0.3 bounciness: 0.3
frictionCombine: 3 frictionCombine: 3

@ -9,7 +9,7 @@ GameObject:
serializedVersion: 6 serializedVersion: 6
m_Component: m_Component:
- component: {fileID: 3226499851666629583} - component: {fileID: 3226499851666629583}
m_Layer: 0 m_Layer: 6
m_Name: Mazda m_Name: Mazda
m_TagString: Untagged m_TagString: Untagged
m_Icon: {fileID: 0} m_Icon: {fileID: 0}
@ -277,7 +277,7 @@ GameObject:
- component: {fileID: 1996295117967270797} - component: {fileID: 1996295117967270797}
- component: {fileID: 6197741949574967842} - component: {fileID: 6197741949574967842}
- component: {fileID: 7521214933862820584} - component: {fileID: 7521214933862820584}
m_Layer: 0 m_Layer: 6
m_Name: trunk m_Name: trunk
m_TagString: Untagged m_TagString: Untagged
m_Icon: {fileID: 0} m_Icon: {fileID: 0}
@ -5142,7 +5142,7 @@ GameObject:
- component: {fileID: 6803286133500254843} - component: {fileID: 6803286133500254843}
- component: {fileID: 1594210206718728218} - component: {fileID: 1594210206718728218}
- component: {fileID: 262702581224657110} - component: {fileID: 262702581224657110}
m_Layer: 0 m_Layer: 6
m_Name: TyreRR m_Name: TyreRR
m_TagString: Untagged m_TagString: Untagged
m_Icon: {fileID: 0} m_Icon: {fileID: 0}
@ -5365,7 +5365,7 @@ GameObject:
- component: {fileID: 5064165004536092304} - component: {fileID: 5064165004536092304}
- component: {fileID: 4147676425898162954} - component: {fileID: 4147676425898162954}
- component: {fileID: 1328552291722723726} - component: {fileID: 1328552291722723726}
m_Layer: 0 m_Layer: 6
m_Name: back_bumper m_Name: back_bumper
m_TagString: Untagged m_TagString: Untagged
m_Icon: {fileID: 0} m_Icon: {fileID: 0}
@ -5451,7 +5451,7 @@ GameObject:
- component: {fileID: 6970494082404099418} - component: {fileID: 6970494082404099418}
- component: {fileID: 6663596786161004473} - component: {fileID: 6663596786161004473}
- component: {fileID: 4965503589446646918} - component: {fileID: 4965503589446646918}
m_Layer: 0 m_Layer: 6
m_Name: Car_body m_Name: Car_body
m_TagString: Untagged m_TagString: Untagged
m_Icon: {fileID: 0} m_Icon: {fileID: 0}
@ -5534,7 +5534,7 @@ GameObject:
- component: {fileID: 1672444639989337543} - component: {fileID: 1672444639989337543}
- component: {fileID: 7438406277822851816} - component: {fileID: 7438406277822851816}
- component: {fileID: 6240239830454016561} - component: {fileID: 6240239830454016561}
m_Layer: 0 m_Layer: 6
m_Name: Wheel_Back_L m_Name: Wheel_Back_L
m_TagString: Untagged m_TagString: Untagged
m_Icon: {fileID: 0} m_Icon: {fileID: 0}
@ -5838,7 +5838,7 @@ GameObject:
- component: {fileID: 3232755990715192808} - component: {fileID: 3232755990715192808}
- component: {fileID: 7052088971751748253} - component: {fileID: 7052088971751748253}
- component: {fileID: 2403882921928812561} - component: {fileID: 2403882921928812561}
m_Layer: 0 m_Layer: 6
m_Name: hood m_Name: hood
m_TagString: Untagged m_TagString: Untagged
m_Icon: {fileID: 0} m_Icon: {fileID: 0}
@ -5922,7 +5922,7 @@ GameObject:
m_Component: m_Component:
- component: {fileID: 2266507765795612964} - component: {fileID: 2266507765795612964}
- component: {fileID: 2918063940594996821} - component: {fileID: 2918063940594996821}
m_Layer: 0 m_Layer: 6
m_Name: Collider m_Name: Collider
m_TagString: Untagged m_TagString: Untagged
m_Icon: {fileID: 0} m_Icon: {fileID: 0}
@ -6437,7 +6437,9 @@ GameObject:
- component: {fileID: 9134473496284358468} - component: {fileID: 9134473496284358468}
- component: {fileID: 8529057636489690899} - component: {fileID: 8529057636489690899}
- component: {fileID: 2057786069090330772} - component: {fileID: 2057786069090330772}
m_Layer: 0 - component: {fileID: 3882702838211760068}
- component: {fileID: 3623752505267742778}
m_Layer: 6
m_Name: Car m_Name: Car
m_TagString: Untagged m_TagString: Untagged
m_Icon: {fileID: 0} m_Icon: {fileID: 0}
@ -6634,6 +6636,7 @@ MonoBehaviour:
_leadMultiplier: 0.25 _leadMultiplier: 0.25
_sideOffset: 0 _sideOffset: 0
waypointsCircuit: {fileID: 0} waypointsCircuit: {fileID: 0}
allwaypointCircuits: []
--- !u!114 &2057786069090330772 --- !u!114 &2057786069090330772
MonoBehaviour: MonoBehaviour:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
@ -6652,6 +6655,46 @@ MonoBehaviour:
boostAcceleration: 40 boostAcceleration: 40
audioVolume: 0.5 audioVolume: 0.5
boostAudio: {fileID: 0} boostAudio: {fileID: 0}
--- !u!114 &3882702838211760068
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 3051241455344466857}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: -1552182283, guid: e725a070cec140c4caffb81624c8c787, type: 3}
m_Name:
m_EditorClassIdentifier:
SortKey: 4247044062
ObjectInterest: 1
Flags: 1
NestedObjects: []
NetworkedBehaviours:
- {fileID: 9134473496284358468}
- {fileID: 8529057636489690899}
- {fileID: 2057786069090330772}
- {fileID: 3623752505267742778}
- {fileID: 8272960029338994865}
ForceRemoteRenderTimeframe: 0
--- !u!114 &3623752505267742778
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 3051241455344466857}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 158639473, guid: e725a070cec140c4caffb81624c8c787, type: 3}
m_Name:
m_EditorClassIdentifier:
_stateAuthorityChangeErrorCorrectionDelta: 0
SyncScale: 0
SyncParent: 0
_autoAOIOverride: 1
DisableSharedModeInterpolation: 0
--- !u!1 &3067970480224447241 --- !u!1 &3067970480224447241
GameObject: GameObject:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
@ -6663,7 +6706,7 @@ GameObject:
- component: {fileID: 8680394452251988295} - component: {fileID: 8680394452251988295}
- component: {fileID: 5337483041725024036} - component: {fileID: 5337483041725024036}
- component: {fileID: 6318049027298034118} - component: {fileID: 6318049027298034118}
m_Layer: 0 m_Layer: 6
m_Name: Glass_11 m_Name: Glass_11
m_TagString: Untagged m_TagString: Untagged
m_Icon: {fileID: 0} m_Icon: {fileID: 0}
@ -6849,7 +6892,8 @@ GameObject:
serializedVersion: 6 serializedVersion: 6
m_Component: m_Component:
- component: {fileID: 5232010396526986649} - component: {fileID: 5232010396526986649}
m_Layer: 0 - component: {fileID: 8272960029338994865}
m_Layer: 6
m_Name: Car_11 m_Name: Car_11
m_TagString: Untagged m_TagString: Untagged
m_Icon: {fileID: 0} m_Icon: {fileID: 0}
@ -6884,6 +6928,23 @@ Transform:
- {fileID: 3247130376224316042} - {fileID: 3247130376224316042}
m_Father: {fileID: 6916985649869243490} m_Father: {fileID: 6916985649869243490}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!114 &8272960029338994865
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 3261787744023920864}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 158639473, guid: e725a070cec140c4caffb81624c8c787, type: 3}
m_Name:
m_EditorClassIdentifier:
_stateAuthorityChangeErrorCorrectionDelta: 0
SyncScale: 0
SyncParent: 0
_autoAOIOverride: 1
DisableSharedModeInterpolation: 0
--- !u!1 &3291397491900579732 --- !u!1 &3291397491900579732
GameObject: GameObject:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
@ -6893,7 +6954,7 @@ GameObject:
serializedVersion: 6 serializedVersion: 6
m_Component: m_Component:
- component: {fileID: 1762526813149383710} - component: {fileID: 1762526813149383710}
m_Layer: 0 m_Layer: 6
m_Name: Muscle car_sample (1) m_Name: Muscle car_sample (1)
m_TagString: Untagged m_TagString: Untagged
m_Icon: {fileID: 0} m_Icon: {fileID: 0}
@ -6935,7 +6996,7 @@ GameObject:
- component: {fileID: 4488184777392333071} - component: {fileID: 4488184777392333071}
- component: {fileID: 1842507426309031076} - component: {fileID: 1842507426309031076}
- component: {fileID: 8536542080551445843} - component: {fileID: 8536542080551445843}
m_Layer: 0 m_Layer: 6
m_Name: Wheel_R m_Name: Wheel_R
m_TagString: Untagged m_TagString: Untagged
m_Icon: {fileID: 0} m_Icon: {fileID: 0}
@ -7018,7 +7079,7 @@ GameObject:
- component: {fileID: 7015308072600729786} - component: {fileID: 7015308072600729786}
- component: {fileID: 36960728362727297} - component: {fileID: 36960728362727297}
- component: {fileID: 1647803835742587026} - component: {fileID: 1647803835742587026}
m_Layer: 0 m_Layer: 6
m_Name: Body_11 m_Name: Body_11
m_TagString: Untagged m_TagString: Untagged
m_Icon: {fileID: 0} m_Icon: {fileID: 0}
@ -7101,7 +7162,7 @@ GameObject:
- component: {fileID: 4716740515574034154} - component: {fileID: 4716740515574034154}
- component: {fileID: 1910489791145566734} - component: {fileID: 1910489791145566734}
- component: {fileID: 3203309624762926779} - component: {fileID: 3203309624762926779}
m_Layer: 0 m_Layer: 6
m_Name: TyreFR m_Name: TyreFR
m_TagString: Untagged m_TagString: Untagged
m_Icon: {fileID: 0} m_Icon: {fileID: 0}
@ -7286,7 +7347,6 @@ MonoBehaviour:
zoomSpeed: 5 zoomSpeed: 5
followSmoothness: 5 followSmoothness: 5
heightOffset: {x: 0, y: 3, z: 0} heightOffset: {x: 0, y: 3, z: 0}
mainCam: {fileID: 961411950535835066}
--- !u!114 &2693913534197745363 --- !u!114 &2693913534197745363
MonoBehaviour: MonoBehaviour:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
@ -7375,7 +7435,7 @@ GameObject:
- component: {fileID: 1654061785997455814} - component: {fileID: 1654061785997455814}
- component: {fileID: 6038027056347595344} - component: {fileID: 6038027056347595344}
- component: {fileID: 6397768575863822657} - component: {fileID: 6397768575863822657}
m_Layer: 0 m_Layer: 3
m_Name: SphereRB m_Name: SphereRB
m_TagString: Untagged m_TagString: Untagged
m_Icon: {fileID: 0} m_Icon: {fileID: 0}
@ -7645,7 +7705,7 @@ GameObject:
- component: {fileID: 7681462549031831539} - component: {fileID: 7681462549031831539}
- component: {fileID: 2304826065750897704} - component: {fileID: 2304826065750897704}
- component: {fileID: 6651685192230433237} - component: {fileID: 6651685192230433237}
m_Layer: 0 m_Layer: 6
m_Name: tyr_3 m_Name: tyr_3
m_TagString: Untagged m_TagString: Untagged
m_Icon: {fileID: 0} m_Icon: {fileID: 0}
@ -7731,7 +7791,7 @@ GameObject:
- component: {fileID: 7242234252648806363} - component: {fileID: 7242234252648806363}
- component: {fileID: 7209189895504951126} - component: {fileID: 7209189895504951126}
- component: {fileID: 9163889422368046705} - component: {fileID: 9163889422368046705}
m_Layer: 0 m_Layer: 6
m_Name: TyreRL m_Name: TyreRL
m_TagString: Untagged m_TagString: Untagged
m_Icon: {fileID: 0} m_Icon: {fileID: 0}
@ -7953,6 +8013,7 @@ GameObject:
m_Component: m_Component:
- component: {fileID: 4431542291951001293} - component: {fileID: 4431542291951001293}
- component: {fileID: 3020599757856457735} - component: {fileID: 3020599757856457735}
- component: {fileID: 2945888187208384748}
m_Layer: 0 m_Layer: 0
m_Name: Player m_Name: Player
m_TagString: Untagged m_TagString: Untagged
@ -7992,12 +8053,25 @@ MonoBehaviour:
SortKey: 4082538716 SortKey: 4082538716
ObjectInterest: 1 ObjectInterest: 1
Flags: 262145 Flags: 262145
NestedObjects: [] NestedObjects:
- {fileID: 3882702838211760068}
NetworkedBehaviours: NetworkedBehaviours:
- {fileID: 9134473496284358468} - {fileID: 2945888187208384748}
- {fileID: 8529057636489690899}
- {fileID: 2057786069090330772}
ForceRemoteRenderTimeframe: 0 ForceRemoteRenderTimeframe: 0
--- !u!114 &2945888187208384748
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 5097956068855214732}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 2459e596155711c43a1b4565da9d7f1b, type: 3}
m_Name:
m_EditorClassIdentifier:
playerCamera: {fileID: 961411950535835066}
audioListener: {fileID: 3230930961156683196}
--- !u!1 &5143393733947949188 --- !u!1 &5143393733947949188
GameObject: GameObject:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0
@ -8080,7 +8154,7 @@ GameObject:
- component: {fileID: 7214299775216957279} - component: {fileID: 7214299775216957279}
- component: {fileID: 8671006277334484659} - component: {fileID: 8671006277334484659}
- component: {fileID: 4289609783625436990} - component: {fileID: 4289609783625436990}
m_Layer: 0 m_Layer: 6
m_Name: front_bumper m_Name: front_bumper
m_TagString: Untagged m_TagString: Untagged
m_Icon: {fileID: 0} m_Icon: {fileID: 0}
@ -8166,7 +8240,7 @@ GameObject:
serializedVersion: 6 serializedVersion: 6
m_Component: m_Component:
- component: {fileID: 4727001567768885926} - component: {fileID: 4727001567768885926}
m_Layer: 0 m_Layer: 6
m_Name: FollowTarget m_Name: FollowTarget
m_TagString: Untagged m_TagString: Untagged
m_Icon: {fileID: 0} m_Icon: {fileID: 0}
@ -8199,7 +8273,7 @@ GameObject:
- component: {fileID: 3417349902575571392} - component: {fileID: 3417349902575571392}
- component: {fileID: 1281223456738738731} - component: {fileID: 1281223456738738731}
- component: {fileID: 5838869942376004407} - component: {fileID: 5838869942376004407}
m_Layer: 0 m_Layer: 6
m_Name: tyr_4 m_Name: tyr_4
m_TagString: Untagged m_TagString: Untagged
m_Icon: {fileID: 0} m_Icon: {fileID: 0}
@ -8285,7 +8359,7 @@ GameObject:
- component: {fileID: 7887662612557220543} - component: {fileID: 7887662612557220543}
- component: {fileID: 6508062126828638862} - component: {fileID: 6508062126828638862}
- component: {fileID: 3764622463982554021} - component: {fileID: 3764622463982554021}
m_Layer: 0 m_Layer: 6
m_Name: TyreFL m_Name: TyreFL
m_TagString: Untagged m_TagString: Untagged
m_Icon: {fileID: 0} m_Icon: {fileID: 0}
@ -8368,7 +8442,7 @@ GameObject:
- component: {fileID: 9151363907653717790} - component: {fileID: 9151363907653717790}
- component: {fileID: 8637257680980531595} - component: {fileID: 8637257680980531595}
- component: {fileID: 4234080948044246345} - component: {fileID: 4234080948044246345}
m_Layer: 0 m_Layer: 6
m_Name: tyr_1 m_Name: tyr_1
m_TagString: Untagged m_TagString: Untagged
m_Icon: {fileID: 0} m_Icon: {fileID: 0}
@ -13709,7 +13783,7 @@ GameObject:
- component: {fileID: 9155755284567349372} - component: {fileID: 9155755284567349372}
- component: {fileID: 8081453901173687489} - component: {fileID: 8081453901173687489}
- component: {fileID: 8727577569916513256} - component: {fileID: 8727577569916513256}
m_Layer: 0 m_Layer: 6
m_Name: left_door m_Name: left_door
m_TagString: Untagged m_TagString: Untagged
m_Icon: {fileID: 0} m_Icon: {fileID: 0}
@ -13799,7 +13873,7 @@ GameObject:
- component: {fileID: 2425101814241512375} - component: {fileID: 2425101814241512375}
- component: {fileID: 8475796777219271733} - component: {fileID: 8475796777219271733}
- component: {fileID: 198073813527369734} - component: {fileID: 198073813527369734}
m_Layer: 0 m_Layer: 6
m_Name: Right_door m_Name: Right_door
m_TagString: Untagged m_TagString: Untagged
m_Icon: {fileID: 0} m_Icon: {fileID: 0}
@ -13887,7 +13961,7 @@ GameObject:
serializedVersion: 6 serializedVersion: 6
m_Component: m_Component:
- component: {fileID: 1076547100095614248} - component: {fileID: 1076547100095614248}
m_Layer: 0 m_Layer: 6
m_Name: 2_new m_Name: 2_new
m_TagString: Untagged m_TagString: Untagged
m_Icon: {fileID: 0} m_Icon: {fileID: 0}
@ -13931,7 +14005,7 @@ GameObject:
- component: {fileID: 4881283934181763003} - component: {fileID: 4881283934181763003}
- component: {fileID: 7032801709433171668} - component: {fileID: 7032801709433171668}
- component: {fileID: 2303916293644935058} - component: {fileID: 2303916293644935058}
m_Layer: 0 m_Layer: 6
m_Name: tyr_2 m_Name: tyr_2
m_TagString: Untagged m_TagString: Untagged
m_Icon: {fileID: 0} m_Icon: {fileID: 0}
@ -14017,7 +14091,7 @@ GameObject:
- component: {fileID: 3085344055384771255} - component: {fileID: 3085344055384771255}
- component: {fileID: 5874836419271216831} - component: {fileID: 5874836419271216831}
- component: {fileID: 8971606842087962358} - component: {fileID: 8971606842087962358}
m_Layer: 0 m_Layer: 6
m_Name: Body m_Name: Body
m_TagString: Untagged m_TagString: Untagged
m_Icon: {fileID: 0} m_Icon: {fileID: 0}
@ -14132,7 +14206,7 @@ GameObject:
- component: {fileID: 5468423092481466504} - component: {fileID: 5468423092481466504}
- component: {fileID: 3465752022036891919} - component: {fileID: 3465752022036891919}
- component: {fileID: 6864287260375896421} - component: {fileID: 6864287260375896421}
m_Layer: 0 m_Layer: 6
m_Name: Matte_11 m_Name: Matte_11
m_TagString: Untagged m_TagString: Untagged
m_Icon: {fileID: 0} m_Icon: {fileID: 0}
@ -14215,7 +14289,7 @@ GameObject:
- component: {fileID: 6181287152015309424} - component: {fileID: 6181287152015309424}
- component: {fileID: 7812991909640515695} - component: {fileID: 7812991909640515695}
- component: {fileID: 4107218409780147572} - component: {fileID: 4107218409780147572}
m_Layer: 0 m_Layer: 6
m_Name: Wheel_Back_R m_Name: Wheel_Back_R
m_TagString: Untagged m_TagString: Untagged
m_Icon: {fileID: 0} m_Icon: {fileID: 0}
@ -14298,7 +14372,7 @@ GameObject:
- component: {fileID: 4711483572375990403} - component: {fileID: 4711483572375990403}
- component: {fileID: 6569281955002429979} - component: {fileID: 6569281955002429979}
- component: {fileID: 4076015669934214686} - component: {fileID: 4076015669934214686}
m_Layer: 0 m_Layer: 6
m_Name: Glass_light m_Name: Glass_light
m_TagString: Untagged m_TagString: Untagged
m_Icon: {fileID: 0} m_Icon: {fileID: 0}
@ -14381,7 +14455,7 @@ GameObject:
- component: {fileID: 8565247240076481468} - component: {fileID: 8565247240076481468}
- component: {fileID: 3818793658648145862} - component: {fileID: 3818793658648145862}
- component: {fileID: 2201859981911300386} - component: {fileID: 2201859981911300386}
m_Layer: 0 m_Layer: 6
m_Name: Taillights_11 m_Name: Taillights_11
m_TagString: Untagged m_TagString: Untagged
m_Icon: {fileID: 0} m_Icon: {fileID: 0}
@ -14764,7 +14838,7 @@ GameObject:
- component: {fileID: 7728721352201334614} - component: {fileID: 7728721352201334614}
- component: {fileID: 2243603945259504288} - component: {fileID: 2243603945259504288}
- component: {fileID: 5262079114703104570} - component: {fileID: 5262079114703104570}
m_Layer: 0 m_Layer: 6
m_Name: Wheel_L m_Name: Wheel_L
m_TagString: Untagged m_TagString: Untagged
m_Icon: {fileID: 0} m_Icon: {fileID: 0}
@ -14845,7 +14919,7 @@ GameObject:
serializedVersion: 6 serializedVersion: 6
m_Component: m_Component:
- component: {fileID: 6916985649869243490} - component: {fileID: 6916985649869243490}
m_Layer: 0 m_Layer: 6
m_Name: Meshes m_Name: Meshes
m_TagString: Untagged m_TagString: Untagged
m_Icon: {fileID: 0} m_Icon: {fileID: 0}

File diff suppressed because it is too large Load Diff

@ -34,7 +34,8 @@ public class FusionInputProvider : SimulationBehaviour, INetworkRunnerCallbacks
// read your steering/throttle // read your steering/throttle
data.Horizontal = CnInputManager.GetAxis("Horizontal"); data.Horizontal = CnInputManager.GetAxis("Horizontal");
data.Vertical = CnInputManager.GetAxis("Vertical"); data.Vertical = CnInputManager.GetAxis("Vertical");
Debug.Log("Horizontal: " + data.Horizontal);
Debug.Log("Vertical: " + data.Vertical);
// grab the NOS state from the local player's spawned object // grab the NOS state from the local player's spawned object
if (runner.TryGetPlayerObject(runner.LocalPlayer, out var playerObj)) if (runner.TryGetPlayerObject(runner.LocalPlayer, out var playerObj))
{ {

@ -112,34 +112,84 @@ public class FusionLauncher : MonoBehaviour, INetworkRunnerCallbacks
// —————— RESET / CREATE FRESH RUNNER —————— // —————— RESET / CREATE FRESH RUNNER ——————
private async Task EnsureFreshRunner() private async Task EnsureFreshRunner()
{ {
// Reset flags // — Teardown any existing runner —
playerCount = 0; playerCount = 0;
gameplayLoaded = false; gameplayLoaded = false;
connectedToServer = false; connectedToServer = false;
// If an old runner exists & is running, shut it down & destroy its GO
if (runner != null && runner.IsRunning) if (runner != null && runner.IsRunning)
{ {
await runner.Shutdown(); await runner.Shutdown();
Destroy(runner.gameObject); Destroy(runner.gameObject);
} }
// Stop auto-refresh while we rebuild
if (refreshCoroutine != null) if (refreshCoroutine != null)
{ {
StopCoroutine(refreshCoroutine); StopCoroutine(refreshCoroutine);
refreshCoroutine = null; refreshCoroutine = null;
} }
// Make brand-new runner GameObject // — Build a new runner GameObject —
var go = new GameObject("NetworkRunnerGO"); var go = new GameObject("NetworkRunnerGO");
DontDestroyOnLoad(go); // keep it alive across scenes DontDestroyOnLoad(go);
// 1) Add the NetworkRunner
runner = go.AddComponent<NetworkRunner>(); runner = go.AddComponent<NetworkRunner>();
// 2) Enable input collection BEFORE StartGame
runner.ProvideInput = true; runner.ProvideInput = true;
// 3) Register this launchers callbacks
runner.AddCallbacks(this); runner.AddCallbacks(this);
// 4) Attach & register your FusionInputProvider
var inputProv = go.AddComponent<FusionInputProvider>();
runner.AddCallbacks(inputProv);
// 5) Log out what weve done
Debug.Log($"[Launcher] Spawned {go.name} → ProvideInput={runner.ProvideInput}; " +
$"FusionInputProvider attached");
// Note: we dont call StartGame here. That happens in CreateLobby() / JoinLobby().
} }
//private async Task EnsureFreshRunner()
//{
// // Reset flags
// playerCount = 0;
// gameplayLoaded = false;
// connectedToServer = false;
// // If an old runner exists & is running, shut it down & destroy its GO
// if (runner != null && runner.IsRunning)
// {
// await runner.Shutdown();
// Destroy(runner.gameObject);
// }
// // Stop auto-refresh while we rebuild
// if (refreshCoroutine != null)
// {
// StopCoroutine(refreshCoroutine);
// refreshCoroutine = null;
// }
// // Make brand-new runner GameObject
// var go = new GameObject("NetworkRunnerGO");
// DontDestroyOnLoad(go); // keep it alive across scenes
// runner = go.AddComponent<NetworkRunner>();
// var inputProv = go.AddComponent<FusionInputProvider>();
// runner.AddCallbacks(inputProv);
// Debug.Log("✔️ Added FusionInputProvider AND registered it on " + go.name);
// // 3) Tell Fusion well be providing input
// runner.ProvideInput = true;
// // 4) Register your launcher callbacks
// runner.AddCallbacks(this);
//}
// —————— CREATE LOBBY (Host) —————— // —————— CREATE LOBBY (Host) ——————
public async void CreateLobby() public async void CreateLobby()
{ {
@ -160,6 +210,7 @@ public class FusionLauncher : MonoBehaviour, INetworkRunnerCallbacks
SessionName = name, SessionName = name,
PlayerCount = maxPlayers, PlayerCount = maxPlayers,
Scene = sceneRef, Scene = sceneRef,
SceneManager = runner.gameObject.AddComponent<NetworkSceneManagerDefault>() SceneManager = runner.gameObject.AddComponent<NetworkSceneManagerDefault>()
}); });
@ -290,6 +341,7 @@ public class FusionLauncher : MonoBehaviour, INetworkRunnerCallbacks
PlayerRef p = players[i]; PlayerRef p = players[i];
Transform sp = provider.spawnPoints[i]; Transform sp = provider.spawnPoints[i];
runner.Spawn(playerPrefab, sp.position, sp.rotation, p); runner.Spawn(playerPrefab, sp.position, sp.rotation, p);
Debug.Log("SpawnPoints done: "+i);
} }
} }
} }

@ -0,0 +1,24 @@
using Fusion;
using UnityEngine;
[RequireComponent(typeof(NetworkObject))]
public class PlayerCameraSetup : NetworkBehaviour
{
[Tooltip("Drag your MainCamera child here")]
[SerializeField] Camera playerCamera;
[Tooltip("If you have an AudioListener on that camera")]
[SerializeField] AudioListener audioListener;
public override void Spawned()
{
base.Spawned();
bool isMine = Object.HasInputAuthority;
if (playerCamera != null)
playerCamera.enabled = isMine;
if (audioListener != null)
audioListener.enabled = isMine;
}
}

@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: 2459e596155711c43a1b4565da9d7f1b
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

@ -92,30 +92,66 @@ public class VehicleController : NetworkBehaviour
{ {
base.Spawned(); base.Spawned();
InitializeVehicle(); InitializeVehicle();
bool isLocalPlayer = Object.HasInputAuthority; // true on the runner that owns this object
bool isHostRunner = Runner.IsServer; // true on the hosts runner
Debug.Log("Spawned");
// if (local && hostRunner) OR (remote && clientRunner) ⇒ this is the hosts car
if (isLocalPlayer == isHostRunner)
gameObject.name = "PlayerHost";
else
gameObject.name = "PlayerClient";
} }
// 1) Fusion will call this every tick to collect local input // 1) Fusion will call this every tick to collect local input
// 2) Fusion runs your simulation here instead of Update/FixedUpdate
public override void FixedUpdateNetwork() public override void FixedUpdateNetwork()
{ {
if (!isRunning || !RaceCountdownManager.Instance || !RaceCountdownManager.Instance.RaceStarted) if (!isRunning || !RaceCountdownManager.Instance || !RaceCountdownManager.Instance.RaceStarted)
return; return;
if (Object.HasInputAuthority && GetInput(out CarNetworkInput data)) if (/*Object.HasInputAuthority && */GetInput(out CarNetworkInput data))
{ {
inputHorizontal = data.Horizontal; inputHorizontal = data.Horizontal;
inputVertical = data.Vertical; inputVertical = data.Vertical;
if (data.NOS) ActivateNOS();
if (data.NOS)
ActivateNOS();
} }
// ✅ Only simulate physics on authoritative runner
//if (!Object.HasStateAuthority) return;
ApplyControls();
CheckGround(); CheckGround();
HandleMovement(); HandleMovement();
UpdateVisuals();
UpdateVisuals(); // OK on all clients
} }
// 2) Fusion runs your simulation here instead of Update/FixedUpdate
//public override void FixedUpdateNetwork()
//{
// if (!isRunning || !RaceCountdownManager.Instance || !RaceCountdownManager.Instance.RaceStarted)
// return;
// if (!Object.HasInputAuthority)
// {
// Debug.Log("🚫 No Input Authority on this player");
// return;
// }
// if (Object.HasInputAuthority && GetInput(out CarNetworkInput data))
// {
// inputHorizontal = data.Horizontal;
// inputVertical = data.Vertical;
// Debug.Log("inputVertical: " + inputVertical);
// Debug.Log("inputHorizontal : " + inputHorizontal);
// if (data.NOS)
// ActivateNOS();
// ApplyControls();
// CheckGround();
// HandleMovement();
// }
// UpdateVisuals();
//}
private void Awake() private void Awake()
{ {
vehicleRigidbody = GetComponent<Rigidbody>(); vehicleRigidbody = GetComponent<Rigidbody>();
@ -221,22 +257,42 @@ public class VehicleController : NetworkBehaviour
private void CheckGround() private void CheckGround()
{ {
if (groundDetection == SurfaceDetection.RayCast) isOnGround = true;
{ //if (groundDetection == SurfaceDetection.RayCast)
isOnGround = Physics.Raycast(sphereRigidbody.position, Vector3.down, out surfaceHit, maxGroundDistance, driveableSurface) //{
|| Physics.Raycast(sphereRigidbody.position + Vector3.forward * 3f, Vector3.down, out surfaceHit, maxGroundDistance, driveableSurface) // isOnGround = Physics.Raycast(sphereRigidbody.position, Vector3.down, out surfaceHit, maxGroundDistance, driveableSurface)
|| Physics.Raycast(sphereRigidbody.position - Vector3.forward * 3f, Vector3.down, out surfaceHit, maxGroundDistance, driveableSurface); // || Physics.Raycast(sphereRigidbody.position + Vector3.forward * 3f, Vector3.down, out surfaceHit, maxGroundDistance, driveableSurface)
// || Physics.Raycast(sphereRigidbody.position - Vector3.forward * 3f, Vector3.down, out surfaceHit, maxGroundDistance, driveableSurface);
//}
//else if (groundDetection == SurfaceDetection.SphereCast)
//{
// isOnGround = Physics.SphereCast(sphereRigidbody.position + wheelRadius * Vector3.up, wheelRadius + 0.25f, -transform.up, out surfaceHit, maxGroundDistance, driveableSurface);
//}
//else isOnGround = false;
} }
else if (groundDetection == SurfaceDetection.SphereCast)
private void HandleMovement()
{ {
isOnGround = Physics.SphereCast(sphereRigidbody.position + wheelRadius * Vector3.up, wheelRadius + 0.25f, -transform.up, out surfaceHit, maxGroundDistance, driveableSurface);
} if (!Object.HasInputAuthority)
else isOnGround = false; {
Debug.LogWarning("Client without InputAuthority is simulating movement — this should not happen!");
} }
else
{
private void HandleMovement() if (Object.HasStateAuthority || Object.HasInputAuthority)
{ {
velocityLocal = vehicleRigidbody.transform.InverseTransformDirection(vehicleRigidbody.velocity); velocityLocal = vehicleRigidbody.transform.InverseTransformDirection(vehicleRigidbody.velocity);
}
// velocityLocal = vehicleRigidbody.transform.InverseTransformDirection(vehicleRigidbody.velocity);
if (float.IsNaN(velocityLocal.z) || float.IsInfinity(velocityLocal.z))
{
Debug.LogWarning($"⚠ Detected invalid velocity: {velocityLocal}. Resetting to zero.");
velocityLocal = Vector3.zero;
}
if (angleDifference > brakeThreshold && velocityLocal.z > 15f) if (angleDifference > brakeThreshold && velocityLocal.z > 15f)
{ {
@ -260,14 +316,25 @@ public class VehicleController : NetworkBehaviour
sphereRigidbody.velocity = Vector3.Lerp(sphereRigidbody.velocity, vehicleRigidbody.transform.forward * (accelerationInput * maxSpeed), accelerationForce / 10f * Time.fixedDeltaTime); sphereRigidbody.velocity = Vector3.Lerp(sphereRigidbody.velocity, vehicleRigidbody.transform.forward * (accelerationInput * maxSpeed), accelerationForce / 10f * Time.fixedDeltaTime);
sphereRigidbody.AddForce(-transform.up * (downforce * sphereRigidbody.mass)); sphereRigidbody.AddForce(-transform.up * (downforce * sphereRigidbody.mass));
vehicleRigidbody.MoveRotation(Quaternion.Slerp(vehicleRigidbody.rotation, Quaternion.FromToRotation(vehicleRigidbody.transform.up, surfaceHit.normal) * vehicleRigidbody.transform.rotation, 0.12f)); vehicleRigidbody.MoveRotation(
Quaternion.Slerp(
vehicleRigidbody.rotation,
Quaternion.FromToRotation(vehicleRigidbody.transform.up, surfaceHit.normal) * vehicleRigidbody.transform.rotation,
0.12f
)
);
} }
else else
{ {
if (allowAirControl) if (allowAirControl)
vehicleRigidbody.AddTorque(Vector3.up * (steeringAI * steeringSensitivity * 100f * steeringMultiplier * steeringFactor)); vehicleRigidbody.AddTorque(Vector3.up * (steeringAI * steeringSensitivity * 100f * steeringMultiplier * steeringFactor));
sphereRigidbody.velocity = Vector3.Lerp(sphereRigidbody.velocity, (vehicleRigidbody.transform.forward * (accelerationInput * maxSpeed)) + Vector3.down * (gravityForce * 9.8f), (accelerationForce / 25f) * Time.deltaTime); sphereRigidbody.velocity = Vector3.Lerp(
sphereRigidbody.velocity,
(vehicleRigidbody.transform.forward * (accelerationInput * maxSpeed)) + Vector3.down * (gravityForce * 9.8f),
(accelerationForce / 25f) * Time.deltaTime
);
}
} }
} }

@ -28,6 +28,7 @@ public class VehicleTracker : NetworkBehaviour
public Vector3 TargetPos => _targetTracker != null ? _targetTracker.position : Vector3.zero; public Vector3 TargetPos => _targetTracker != null ? _targetTracker.position : Vector3.zero;
private float VehicleSpeed => _linkedController != null ? _linkedController.LocalVelocity.z : 0f; private float VehicleSpeed => _linkedController != null ? _linkedController.LocalVelocity.z : 0f;
public WaypointCircuit waypointsCircuit; public WaypointCircuit waypointsCircuit;
public WaypointCircuit[] allwaypointCircuits;
private float _offsetSwitchTimer; private float _offsetSwitchTimer;
//private void Start() //private void Start()
@ -55,7 +56,17 @@ public class VehicleTracker : NetworkBehaviour
_distanceTraveled = 0f; _distanceTraveled = 0f;
_offsetTimerRandom = Random.Range(2.5f, 15f); _offsetTimerRandom = Random.Range(2.5f, 15f);
_offsetSwitchTimer = _offsetTimerRandom; _offsetSwitchTimer = _offsetTimerRandom;
waypointsCircuit = FindObjectOfType<WaypointCircuit>(); allwaypointCircuits=FindObjectsOfType<WaypointCircuit>();
for (int i = 0; i < allwaypointCircuits.Length; i++)
{
if (allwaypointCircuits[i].accepted==false)
{
allwaypointCircuits[i].accepted = true;
waypointsCircuit = allwaypointCircuits[i];
break;
}
}
//waypointsCircuit = FindObjectOfType<WaypointCircuit>();
} }
public override void FixedUpdateNetwork() public override void FixedUpdateNetwork()
{ {

@ -14,6 +14,7 @@ public class WaypointCircuit : MonoBehaviour
[SerializeField] bool _closedLoop = true; [SerializeField] bool _closedLoop = true;
[Range(100f, 1000f)][SerializeField] float _editorVisualisationSubsteps = 100f; [Range(100f, 1000f)][SerializeField] float _editorVisualisationSubsteps = 100f;
[SerializeField] List<Transform> _waypoints = new List<Transform>(); [SerializeField] List<Transform> _waypoints = new List<Transform>();
public bool accepted = false;
//=================================================== //===================================================
// PRIVATE FIELDS // PRIVATE FIELDS

Loading…
Cancel
Save