Finished Networking the Boulder

This commit is contained in:
Julia Butenhoff 2021-12-10 22:30:40 -06:00
parent b74c71004d
commit 2c2a13ff84
7 changed files with 254 additions and 62 deletions

View File

@ -0,0 +1,67 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!1 &8808368135834717663
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 8808368135834717660}
- component: {fileID: 8808368135834717661}
- component: {fileID: 8808368135834717634}
m_Layer: 0
m_Name: Boulder Spawn
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &8808368135834717660
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 8808368135834717663}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 380, y: 39, z: 370}
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children: []
m_Father: {fileID: 0}
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!114 &8808368135834717661
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 8808368135834717663}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 18d4d5c56acc6924baed02e452b9d1d0, type: 3}
m_Name:
m_EditorClassIdentifier:
RespawnTimer: 10
spawnForce: {x: -4000, y: 0, z: 0}
SpawnLocation: {x: 380, y: 40, z: 370}
BoulderPrefab: {fileID: 1705285893771051651, guid: 3fd15f10e6c1a07419fdd6bf804b6541, type: 3}
--- !u!114 &8808368135834717634
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 8808368135834717663}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: d5a57f767e5e46a458fc5d3c628d0cbb, type: 3}
m_Name:
m_EditorClassIdentifier:
NetworkInstanceId: 0
PrefabHash: 6730720678359712257
PrefabHashGenerator: Boulder Spawn
AlwaysReplicateAsRoot: 0
DontDestroyWithOwner: 0

View File

@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: 0d288120830514244bc113d85efa9b4d
PrefabImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -15,6 +15,8 @@ GameObject:
- component: {fileID: 1705285893771051655}
- component: {fileID: 3031846312447326290}
- component: {fileID: -1304216180615842640}
- component: {fileID: -3710512156953913788}
- component: {fileID: 7172572379796297154}
m_Layer: 0
m_Name: Boulder
m_TagString: Untagged
@ -139,3 +141,68 @@ SphereCollider:
serializedVersion: 2
m_Radius: 0.5
m_Center: {x: 0, y: 0, z: 0}
--- !u!114 &-3710512156953913788
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1705285893771051652}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: d5a57f767e5e46a458fc5d3c628d0cbb, type: 3}
m_Name:
m_EditorClassIdentifier:
NetworkInstanceId: 0
PrefabHash: 10761943207984983740
PrefabHashGenerator: Boulder
AlwaysReplicateAsRoot: 0
DontDestroyWithOwner: 0
--- !u!114 &7172572379796297154
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1705285893771051652}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: e96cb6065543e43c4a752faaa1468eb1, type: 3}
m_Name:
m_EditorClassIdentifier:
FixedSendsPerSecond: 20
AssumeSyncedSends: 1
InterpolatePosition: 1
SnapDistance: 10
InterpolateServer: 1
MinMeters: 0.15
MinDegrees: 1.5
ExtrapolatePosition: 0
MaxSendsToExtrapolate: 5
Channel:
EnableRange: 0
EnableNonProvokedResendChecks: 0
DistanceSendrate:
serializedVersion: 2
m_Curve:
- serializedVersion: 3
time: 0
value: 20
inSlope: 0
outSlope: 0
tangentMode: 0
weightedMode: 0
inWeight: 0
outWeight: 0
- serializedVersion: 3
time: 500
value: 20
inSlope: 0
outSlope: 0
tangentMode: 0
weightedMode: 0
inWeight: 0
outWeight: 0
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4

View File

@ -6625,53 +6625,11 @@ MeshFilter:
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 370188826}
m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0}
--- !u!1 &372819693
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 372819694}
- component: {fileID: 372819695}
m_Layer: 0
m_Name: Boulder Spawn
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &372819694
--- !u!4 &372819694 stripped
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_CorrespondingSourceObject: {fileID: 8808368135834717660, guid: 0d288120830514244bc113d85efa9b4d, type: 3}
m_PrefabInstance: {fileID: 8808368135602473778}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 372819693}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 380, y: 39, z: 370}
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children: []
m_Father: {fileID: 709008595}
m_RootOrder: 10
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!114 &372819695
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 372819693}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 18d4d5c56acc6924baed02e452b9d1d0, type: 3}
m_Name:
m_EditorClassIdentifier:
RespawnTimer: 10
spawnForce: {x: -4000, y: 0, z: 0}
SpawnLocation: {x: 380, y: 40, z: 370}
BoulderPrefab: {fileID: 1705285893771051651, guid: 3fd15f10e6c1a07419fdd6bf804b6541, type: 3}
--- !u!1 &374633642
GameObject:
m_ObjectHideFlags: 0
@ -20858,6 +20816,10 @@ PrefabInstance:
propertyPath: m_Name
value: DebugPlayerPrefab
objectReference: {fileID: 0}
- target: {fileID: 5633209979457551608, guid: 362ca97b75c291a47ab81d628a81f440, type: 3}
propertyPath: m_IsActive
value: 0
objectReference: {fileID: 0}
- target: {fileID: 6926740475113451123, guid: 362ca97b75c291a47ab81d628a81f440, type: 3}
propertyPath: m_RootOrder
value: 1
@ -28596,7 +28558,7 @@ GameObject:
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 0
m_IsActive: 1
--- !u!81 &1664207030
AudioListener:
m_ObjectHideFlags: 0
@ -39409,6 +39371,63 @@ MeshRenderer:
m_SortingLayer: 0
m_SortingOrder: 0
m_AdditionalVertexStreams: {fileID: 0}
--- !u!1001 &8808368135602473778
PrefabInstance:
m_ObjectHideFlags: 0
serializedVersion: 2
m_Modification:
m_TransformParent: {fileID: 709008595}
m_Modifications:
- target: {fileID: 8808368135834717660, guid: 0d288120830514244bc113d85efa9b4d, type: 3}
propertyPath: m_RootOrder
value: 10
objectReference: {fileID: 0}
- target: {fileID: 8808368135834717660, guid: 0d288120830514244bc113d85efa9b4d, type: 3}
propertyPath: m_LocalPosition.x
value: 380
objectReference: {fileID: 0}
- target: {fileID: 8808368135834717660, guid: 0d288120830514244bc113d85efa9b4d, type: 3}
propertyPath: m_LocalPosition.y
value: 39
objectReference: {fileID: 0}
- target: {fileID: 8808368135834717660, guid: 0d288120830514244bc113d85efa9b4d, type: 3}
propertyPath: m_LocalPosition.z
value: 370
objectReference: {fileID: 0}
- target: {fileID: 8808368135834717660, guid: 0d288120830514244bc113d85efa9b4d, type: 3}
propertyPath: m_LocalRotation.w
value: 1
objectReference: {fileID: 0}
- target: {fileID: 8808368135834717660, guid: 0d288120830514244bc113d85efa9b4d, type: 3}
propertyPath: m_LocalRotation.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 8808368135834717660, guid: 0d288120830514244bc113d85efa9b4d, type: 3}
propertyPath: m_LocalRotation.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 8808368135834717660, guid: 0d288120830514244bc113d85efa9b4d, type: 3}
propertyPath: m_LocalRotation.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 8808368135834717660, guid: 0d288120830514244bc113d85efa9b4d, type: 3}
propertyPath: m_LocalEulerAnglesHint.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 8808368135834717660, guid: 0d288120830514244bc113d85efa9b4d, type: 3}
propertyPath: m_LocalEulerAnglesHint.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 8808368135834717660, guid: 0d288120830514244bc113d85efa9b4d, type: 3}
propertyPath: m_LocalEulerAnglesHint.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 8808368135834717663, guid: 0d288120830514244bc113d85efa9b4d, type: 3}
propertyPath: m_Name
value: Boulder Spawn
objectReference: {fileID: 0}
m_RemovedComponents: []
m_SourcePrefab: {fileID: 100100000, guid: 0d288120830514244bc113d85efa9b4d, type: 3}
--- !u!64 &8898764535877193668
MeshCollider:
m_ObjectHideFlags: 0

View File

@ -210,9 +210,9 @@ MonoBehaviour:
m_Name:
m_EditorClassIdentifier:
runnerSpawnPoints:
- {x: 725, y: 25, z: 488}
- {x: 725, y: 25, z: 500}
kingSpawnPoint: {x: -2, y: 2, z: -2}
- {x: 730.21, y: 26, z: 501}
- {x: 730.21, y: 26, z: 494}
kingSpawnPoint: {x: 350, y: 625, z: 1130}
--- !u!1 &1494071116
GameObject:
m_ObjectHideFlags: 0
@ -294,6 +294,10 @@ MonoBehaviour:
PlayerPrefab: 0
- Prefab: {fileID: 8778111956603343863, guid: 0e50603b66fe968418894499e023ec03, type: 3}
PlayerPrefab: 0
- Prefab: {fileID: 8808368135834717663, guid: 0d288120830514244bc113d85efa9b4d, type: 3}
PlayerPrefab: 0
- Prefab: {fileID: 1705285893771051652, guid: 3fd15f10e6c1a07419fdd6bf804b6541, type: 3}
PlayerPrefab: 0
PlayerPrefabHash:
id: 0
CreatePlayerPrefab: 0

View File

@ -1,8 +1,10 @@
using MLAPI;
using MLAPI.Messaging;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class BoulderSpawn : MonoBehaviour
public class BoulderSpawn : NetworkBehaviour
{
[SerializeField] private float RespawnTimer = 10.0f;
private float currentTime = 0.0f;
@ -13,22 +15,32 @@ public class BoulderSpawn : MonoBehaviour
[SerializeField] private Transform BoulderPrefab;
private GameObject boulderInScene;
// Start is called before the first frame update
void Start()
{
if (IsHost)
{
SpawnBoulderServerRPC();
}
}
[ServerRpc(RequireOwnership = false)]
private void SpawnBoulderServerRPC() {
boulderInScene = Instantiate(BoulderPrefab, SpawnLocation, Quaternion.identity).gameObject;
boulderInScene.GetComponent<Rigidbody>().AddForce(spawnForce);
boulderInScene.GetComponent<NetworkObject>().Spawn(null, true);
boulderInScene.GetComponent<Boulder>().StartCountdown((int)RespawnTimer, spawnForce);
}
private void FixedUpdate()
{
if (!IsHost) { return; }
currentTime += Time.fixedDeltaTime;
if (currentTime >= RespawnTimer)
{
currentTime = 0.0f;
Destroy(boulderInScene);
boulderInScene = Instantiate(BoulderPrefab, SpawnLocation, Quaternion.identity).gameObject;
boulderInScene.GetComponent<Rigidbody>().AddForce(spawnForce);
SpawnBoulderServerRPC();
}
}

View File

@ -1,8 +1,10 @@
using MLAPI;
using MLAPI.Messaging;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Boulder : MonoBehaviour
public class Boulder : NetworkBehaviour
{
private Rigidbody boulder;
@ -23,15 +25,29 @@ public class Boulder : MonoBehaviour
}
}
//Coppied from player for easy Boulder Testing/Demonstration
void FixedUpdate() {
Respawn();
public void StartCountdown(int time, Vector3 spawnForce)
{
StartCoroutine(DespawnCounter(time));
AddForceServerRPC(spawnForce);
}
private void Respawn()
{
if (transform.position.y < -1) {
transform.position = new Vector3(74.67f, 34.68f, 7.15f);
[ServerRpc]
private void AddForceServerRPC(Vector3 force) {
this.gameObject.GetComponent<Rigidbody>().AddForce(force);
}
IEnumerator DespawnCounter(int time) {
for (int i = time; i > 0; i--) {
Debug.LogError(i);
yield return new WaitForSecondsRealtime(1f);
}
// Time's up - Despawn us
DespawnBoulderServerRPC();
}
[ServerRpc(RequireOwnership = false)]
private void DespawnBoulderServerRPC() {
this.gameObject.GetComponent<NetworkObject>().Despawn(true);
}
}