feat: add base functionality
Add ServerPlayerSpawnPoints.cs with its functionality Add to Trooper OnServerSpawnPlayer() for spawning on SpawnPoint.
This commit is contained in:
parent
1c4b76a078
commit
b0eccf53b5
@ -11608,63 +11608,6 @@ Mesh:
|
|||||||
offset: 0
|
offset: 0
|
||||||
size: 0
|
size: 0
|
||||||
path:
|
path:
|
||||||
--- !u!1001 &911870924
|
|
||||||
PrefabInstance:
|
|
||||||
m_ObjectHideFlags: 0
|
|
||||||
serializedVersion: 2
|
|
||||||
m_Modification:
|
|
||||||
serializedVersion: 3
|
|
||||||
m_TransformParent: {fileID: 0}
|
|
||||||
m_Modifications:
|
|
||||||
- target: {fileID: -8679921383154817045, guid: b5e8b9c441024a5488ac81ee138cb2d0, type: 3}
|
|
||||||
propertyPath: m_LocalPosition.x
|
|
||||||
value: -2.7960749
|
|
||||||
objectReference: {fileID: 0}
|
|
||||||
- target: {fileID: -8679921383154817045, guid: b5e8b9c441024a5488ac81ee138cb2d0, type: 3}
|
|
||||||
propertyPath: m_LocalPosition.y
|
|
||||||
value: 0.0000019073486
|
|
||||||
objectReference: {fileID: 0}
|
|
||||||
- target: {fileID: -8679921383154817045, guid: b5e8b9c441024a5488ac81ee138cb2d0, type: 3}
|
|
||||||
propertyPath: m_LocalPosition.z
|
|
||||||
value: 0
|
|
||||||
objectReference: {fileID: 0}
|
|
||||||
- target: {fileID: -8679921383154817045, guid: b5e8b9c441024a5488ac81ee138cb2d0, type: 3}
|
|
||||||
propertyPath: m_LocalRotation.w
|
|
||||||
value: 1
|
|
||||||
objectReference: {fileID: 0}
|
|
||||||
- target: {fileID: -8679921383154817045, guid: b5e8b9c441024a5488ac81ee138cb2d0, type: 3}
|
|
||||||
propertyPath: m_LocalRotation.x
|
|
||||||
value: 0
|
|
||||||
objectReference: {fileID: 0}
|
|
||||||
- target: {fileID: -8679921383154817045, guid: b5e8b9c441024a5488ac81ee138cb2d0, type: 3}
|
|
||||||
propertyPath: m_LocalRotation.y
|
|
||||||
value: 0
|
|
||||||
objectReference: {fileID: 0}
|
|
||||||
- target: {fileID: -8679921383154817045, guid: b5e8b9c441024a5488ac81ee138cb2d0, type: 3}
|
|
||||||
propertyPath: m_LocalRotation.z
|
|
||||||
value: 0
|
|
||||||
objectReference: {fileID: 0}
|
|
||||||
- target: {fileID: -8679921383154817045, guid: b5e8b9c441024a5488ac81ee138cb2d0, type: 3}
|
|
||||||
propertyPath: m_LocalEulerAnglesHint.x
|
|
||||||
value: 0
|
|
||||||
objectReference: {fileID: 0}
|
|
||||||
- target: {fileID: -8679921383154817045, guid: b5e8b9c441024a5488ac81ee138cb2d0, type: 3}
|
|
||||||
propertyPath: m_LocalEulerAnglesHint.y
|
|
||||||
value: 0
|
|
||||||
objectReference: {fileID: 0}
|
|
||||||
- target: {fileID: -8679921383154817045, guid: b5e8b9c441024a5488ac81ee138cb2d0, type: 3}
|
|
||||||
propertyPath: m_LocalEulerAnglesHint.z
|
|
||||||
value: 0
|
|
||||||
objectReference: {fileID: 0}
|
|
||||||
- target: {fileID: 919132149155446097, guid: b5e8b9c441024a5488ac81ee138cb2d0, type: 3}
|
|
||||||
propertyPath: m_Name
|
|
||||||
value: SpeedFireModels
|
|
||||||
objectReference: {fileID: 0}
|
|
||||||
m_RemovedComponents: []
|
|
||||||
m_RemovedGameObjects: []
|
|
||||||
m_AddedGameObjects: []
|
|
||||||
m_AddedComponents: []
|
|
||||||
m_SourcePrefab: {fileID: 100100000, guid: b5e8b9c441024a5488ac81ee138cb2d0, type: 3}
|
|
||||||
--- !u!1 &955913176
|
--- !u!1 &955913176
|
||||||
GameObject:
|
GameObject:
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
@ -14309,6 +14252,52 @@ Transform:
|
|||||||
m_Children: []
|
m_Children: []
|
||||||
m_Father: {fileID: 291306114}
|
m_Father: {fileID: 291306114}
|
||||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
|
--- !u!1 &1108456493
|
||||||
|
GameObject:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
serializedVersion: 6
|
||||||
|
m_Component:
|
||||||
|
- component: {fileID: 1108456495}
|
||||||
|
- component: {fileID: 1108456494}
|
||||||
|
m_Layer: 0
|
||||||
|
m_Name: NetworkSpawnPos (1)
|
||||||
|
m_TagString: Untagged
|
||||||
|
m_Icon: {fileID: 0}
|
||||||
|
m_NavMeshLayer: 0
|
||||||
|
m_StaticEditorFlags: 0
|
||||||
|
m_IsActive: 1
|
||||||
|
--- !u!114 &1108456494
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 1108456493}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: cee2c0113dc15964db87a29bb399e791, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier:
|
||||||
|
m_SpawnPoints:
|
||||||
|
- {fileID: 1108456493}
|
||||||
|
--- !u!4 &1108456495
|
||||||
|
Transform:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 1108456493}
|
||||||
|
serializedVersion: 2
|
||||||
|
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||||
|
m_LocalPosition: {x: -3, y: 0, z: 0}
|
||||||
|
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||||
|
m_ConstrainProportionsScale: 0
|
||||||
|
m_Children: []
|
||||||
|
m_Father: {fileID: 0}
|
||||||
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
--- !u!1 &1119466313
|
--- !u!1 &1119466313
|
||||||
GameObject:
|
GameObject:
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
@ -22764,6 +22753,52 @@ Mesh:
|
|||||||
offset: 0
|
offset: 0
|
||||||
size: 0
|
size: 0
|
||||||
path:
|
path:
|
||||||
|
--- !u!1 &1528084438
|
||||||
|
GameObject:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
serializedVersion: 6
|
||||||
|
m_Component:
|
||||||
|
- component: {fileID: 1528084439}
|
||||||
|
- component: {fileID: 1528084440}
|
||||||
|
m_Layer: 0
|
||||||
|
m_Name: NetworkSpawnPos
|
||||||
|
m_TagString: Untagged
|
||||||
|
m_Icon: {fileID: 0}
|
||||||
|
m_NavMeshLayer: 0
|
||||||
|
m_StaticEditorFlags: 0
|
||||||
|
m_IsActive: 1
|
||||||
|
--- !u!4 &1528084439
|
||||||
|
Transform:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 1528084438}
|
||||||
|
serializedVersion: 2
|
||||||
|
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||||
|
m_LocalPosition: {x: -1, y: 0, z: 0}
|
||||||
|
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||||
|
m_ConstrainProportionsScale: 0
|
||||||
|
m_Children: []
|
||||||
|
m_Father: {fileID: 0}
|
||||||
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
|
--- !u!114 &1528084440
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 1528084438}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: cee2c0113dc15964db87a29bb399e791, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier:
|
||||||
|
m_SpawnPoints:
|
||||||
|
- {fileID: 1528084438}
|
||||||
--- !u!1 &1530074703
|
--- !u!1 &1530074703
|
||||||
GameObject:
|
GameObject:
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
@ -28450,63 +28485,6 @@ Mesh:
|
|||||||
offset: 0
|
offset: 0
|
||||||
size: 0
|
size: 0
|
||||||
path:
|
path:
|
||||||
--- !u!1001 &1740863921
|
|
||||||
PrefabInstance:
|
|
||||||
m_ObjectHideFlags: 0
|
|
||||||
serializedVersion: 2
|
|
||||||
m_Modification:
|
|
||||||
serializedVersion: 3
|
|
||||||
m_TransformParent: {fileID: 0}
|
|
||||||
m_Modifications:
|
|
||||||
- target: {fileID: -8679921383154817045, guid: 68f975ad13142f649bdb7d103d57f656, type: 3}
|
|
||||||
propertyPath: m_LocalPosition.x
|
|
||||||
value: -1.3960747
|
|
||||||
objectReference: {fileID: 0}
|
|
||||||
- target: {fileID: -8679921383154817045, guid: 68f975ad13142f649bdb7d103d57f656, type: 3}
|
|
||||||
propertyPath: m_LocalPosition.y
|
|
||||||
value: 0.00000047683716
|
|
||||||
objectReference: {fileID: 0}
|
|
||||||
- target: {fileID: -8679921383154817045, guid: 68f975ad13142f649bdb7d103d57f656, type: 3}
|
|
||||||
propertyPath: m_LocalPosition.z
|
|
||||||
value: 0
|
|
||||||
objectReference: {fileID: 0}
|
|
||||||
- target: {fileID: -8679921383154817045, guid: 68f975ad13142f649bdb7d103d57f656, type: 3}
|
|
||||||
propertyPath: m_LocalRotation.w
|
|
||||||
value: 1
|
|
||||||
objectReference: {fileID: 0}
|
|
||||||
- target: {fileID: -8679921383154817045, guid: 68f975ad13142f649bdb7d103d57f656, type: 3}
|
|
||||||
propertyPath: m_LocalRotation.x
|
|
||||||
value: 0
|
|
||||||
objectReference: {fileID: 0}
|
|
||||||
- target: {fileID: -8679921383154817045, guid: 68f975ad13142f649bdb7d103d57f656, type: 3}
|
|
||||||
propertyPath: m_LocalRotation.y
|
|
||||||
value: 0
|
|
||||||
objectReference: {fileID: 0}
|
|
||||||
- target: {fileID: -8679921383154817045, guid: 68f975ad13142f649bdb7d103d57f656, type: 3}
|
|
||||||
propertyPath: m_LocalRotation.z
|
|
||||||
value: 0
|
|
||||||
objectReference: {fileID: 0}
|
|
||||||
- target: {fileID: -8679921383154817045, guid: 68f975ad13142f649bdb7d103d57f656, type: 3}
|
|
||||||
propertyPath: m_LocalEulerAnglesHint.x
|
|
||||||
value: 0
|
|
||||||
objectReference: {fileID: 0}
|
|
||||||
- target: {fileID: -8679921383154817045, guid: 68f975ad13142f649bdb7d103d57f656, type: 3}
|
|
||||||
propertyPath: m_LocalEulerAnglesHint.y
|
|
||||||
value: 0
|
|
||||||
objectReference: {fileID: 0}
|
|
||||||
- target: {fileID: -8679921383154817045, guid: 68f975ad13142f649bdb7d103d57f656, type: 3}
|
|
||||||
propertyPath: m_LocalEulerAnglesHint.z
|
|
||||||
value: 0
|
|
||||||
objectReference: {fileID: 0}
|
|
||||||
- target: {fileID: 919132149155446097, guid: 68f975ad13142f649bdb7d103d57f656, type: 3}
|
|
||||||
propertyPath: m_Name
|
|
||||||
value: RobotTestModel
|
|
||||||
objectReference: {fileID: 0}
|
|
||||||
m_RemovedComponents: []
|
|
||||||
m_RemovedGameObjects: []
|
|
||||||
m_AddedGameObjects: []
|
|
||||||
m_AddedComponents: []
|
|
||||||
m_SourcePrefab: {fileID: 100100000, guid: 68f975ad13142f649bdb7d103d57f656, type: 3}
|
|
||||||
--- !u!1 &1761487665
|
--- !u!1 &1761487665
|
||||||
GameObject:
|
GameObject:
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
@ -36292,6 +36270,6 @@ SceneRoots:
|
|||||||
- {fileID: 1316630045}
|
- {fileID: 1316630045}
|
||||||
- {fileID: 308004456}
|
- {fileID: 308004456}
|
||||||
- {fileID: 901735154}
|
- {fileID: 901735154}
|
||||||
- {fileID: 911870924}
|
|
||||||
- {fileID: 1740863921}
|
|
||||||
- {fileID: 419097832}
|
- {fileID: 419097832}
|
||||||
|
- {fileID: 1528084439}
|
||||||
|
- {fileID: 1108456495}
|
||||||
|
@ -48,9 +48,17 @@ public class Trooper : RobotController
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Networking Staff - Spawn & Despawn
|
// Networking Staff - Spawn & Despawn
|
||||||
|
void OnServerSpawnPlayer()
|
||||||
|
{
|
||||||
|
// this is done server side, so we have a single source of truth for our spawn point list
|
||||||
|
var spawnPoint = ServerPlayerSpawnPoints.Instance.ConsumeNextSpawnPoint();
|
||||||
|
var spawnPosition = spawnPoint ? spawnPoint.transform.position : Vector3.zero;
|
||||||
|
transform.position = spawnPosition;
|
||||||
|
}
|
||||||
|
|
||||||
public override void OnNetworkSpawn()
|
public override void OnNetworkSpawn()
|
||||||
{
|
{
|
||||||
|
OnServerSpawnPlayer();
|
||||||
base.OnNetworkSpawn();
|
base.OnNetworkSpawn();
|
||||||
|
|
||||||
playerInput.enabled = IsOwner;
|
playerInput.enabled = IsOwner;
|
||||||
|
40
Assets/Scripts/Runtime/Networking/ServerPlayerSpawnPoints.cs
Normal file
40
Assets/Scripts/Runtime/Networking/ServerPlayerSpawnPoints.cs
Normal file
@ -0,0 +1,40 @@
|
|||||||
|
using System.Collections.Generic;
|
||||||
|
using UnityEngine;
|
||||||
|
|
||||||
|
public class ServerPlayerSpawnPoints : MonoBehaviour
|
||||||
|
{
|
||||||
|
[SerializeField]
|
||||||
|
List<GameObject> m_SpawnPoints;
|
||||||
|
|
||||||
|
static ServerPlayerSpawnPoints s_Instance;
|
||||||
|
|
||||||
|
public static ServerPlayerSpawnPoints Instance
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
if (s_Instance == null)
|
||||||
|
{
|
||||||
|
s_Instance = FindObjectOfType<ServerPlayerSpawnPoints>();
|
||||||
|
}
|
||||||
|
|
||||||
|
return s_Instance;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void OnDestroy()
|
||||||
|
{
|
||||||
|
s_Instance = null;
|
||||||
|
}
|
||||||
|
|
||||||
|
public GameObject ConsumeNextSpawnPoint()
|
||||||
|
{
|
||||||
|
if (m_SpawnPoints.Count == 0)
|
||||||
|
{
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
var toReturn = m_SpawnPoints[m_SpawnPoints.Count - 1];
|
||||||
|
m_SpawnPoints.RemoveAt(m_SpawnPoints.Count - 1);
|
||||||
|
return toReturn;
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,2 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: cee2c0113dc15964db87a29bb399e791
|
Loading…
x
Reference in New Issue
Block a user