8000 client entity db, npc spawning · coderDarren/PlayNet@d1bd003 · GitHub
[go: up one dir, main page]

Skip to content

Commit d1bd003

Browse files
committed
client entity db, npc spawning
1 parent 775b3f2 commit d1bd003

19 files changed

+281
-1
lines changed

MultiplayerDemo/Assets/Database.meta

+8
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

MultiplayerDemo/Assets/Database/NetworkEntity.meta

+8
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
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: 943c95f1d57563340bc972b58a81a346, type: 3}
13+
m_Name: Droid
14+
m_EditorClassIdentifier:
15+
nameQuery:
16+
Prefab: {fileID: 0}

MultiplayerDemo/Assets/Database/NetworkEntity/Droid.asset.meta

+8
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
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: 72cad56b98779244b8110fdeab08054c, type: 3}
13+
m_Name: NetworkEntity Database
14+
m_EditorClassIdentifier:
15+
Prefabs: []

MultiplayerDemo/Assets/Database/NetworkEntity/NetworkEntity Database.asset.meta

+8
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

MultiplayerDemo/Assets/Prefabs.meta

+8
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

MultiplayerDemo/Assets/Prefabs/Entities.meta

+8
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,99 @@
1+
%YAML 1.1
2+
%TAG !u! tag:unity3d.com,2011:
3+
--- !u!1 &2214243159554248678
4+
GameObject:
5+
m_ObjectHideFlags: 0
6+
m_CorrespondingSourceObject: {fileID: 0}
7+
m_PrefabInstance: {fileID: 0}
8+
m_PrefabAsset: {fileID: 0}
9+
serializedVersion: 6
10+
m_Component:
11+
- component: {fileID: 6265834291208440443}
12+
- component: {fileID: 5085426527986256304}
13+
- component: {fileID: 3514869118546146726}
14+
- component: {fileID: 7214813095658916597}
15+
m_Layer: 0
16+
m_Name: Droid
17+
m_TagString: Untagged
18+
m_Icon: {fileID: 0}
19+
m_NavMeshLayer: 0
20+
m_StaticEditorFlags: 0
21+
m_IsActive: 1
22+
--- !u!4 &6265834291208440443
23+
Transform:
24+
m_ObjectHideFlags: 0
25+
m_CorrespondingSourceObject: {fileID: 0}
26+
m_PrefabInstance: {fileID: 0}
27+
m_PrefabAsset: {fileID: 0}
28+
m_GameObject: {fileID: 2214243159554248678}
29+
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
30+
m_LocalPosition: {x: 0, y: 0.5, z: -5.55}
31+
m_LocalScale: {x: 1, y: 1, z: 1}
32+
m_ConstrainProportionsScale: 0
33+
m_Children: []
34+
m_Father: {fileID: 0}
35+
m_RootOrder: 0
36+
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
37+
--- !u!33 &5085426527986256304
38+
MeshFilter:
39+
m_ObjectHideFlags: 0
40+
m_CorrespondingSourceObject: {fileID: 0}
10000 41+
m_PrefabInstance: {fileID: 0}
42+
m_PrefabAsset: {fileID: 0}
43+
m_GameObject: {fileID: 2214243159554248678}
44+
m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0}
45+
--- !u!23 &3514869118546146726
46+
MeshRenderer:
47+
m_ObjectHideFlags: 0
48+
m_CorrespondingSourceObject: {fileID: 0}
49+
m_PrefabInstance: {fileID: 0}
50+
m_PrefabAsset: {fileID: 0}
51+
m_GameObject: {fileID: 2214243159554248678}
52+
m_Enabled: 1
53+
m_CastShadows: 1
54+
m_ReceiveShadows: 1
55+
m_DynamicOccludee: 1
56+
m_StaticShadowCaster: 0
57+
m_MotionVectors: 1
58+
m_LightProbeUsage: 1
59+
m_ReflectionProbeUsage: 1
60+
m_RayTracingMode: 2
61+
m_RayTraceProcedural: 0
62+
m_RenderingLayerMask: 1
63+
m_RendererPriority: 0
64+
m_Materials:
65+
- {fileID: 10303, guid: 0000000000000000f000000000000000, type: 0}
66+
m_StaticBatchInfo:
67+
firstSubMesh: 0
68+
subMeshCount: 0
69+
m_StaticBatchRoot: {fileID: 0}
70+
m_ProbeAnchor: {fileID: 0}
71+
m_LightProbeVolumeOverride: {fileID: 0}
72+
m_ScaleInLightmap: 1
73+
m_ReceiveGI: 1
74+
m_PreserveUVs: 0
75+
m_IgnoreNormalsForChartDetection: 0
76+
m_ImportantGI: 0
77+
m_StitchLightmapSeams: 1
78+
m_SelectedEditorRenderState: 3
79+
m_MinimumChartSize: 4
80+
m_AutoUVMaxDistance: 0.5
81+
m_AutoUVMaxAngle: 89
82+
m_LightmapParameters: {fileID: 0}
83+
m_SortingLayerID: 0
84+
m_SortingLayer: 0
85+
m_SortingOrder: 0
86+
m_AdditionalVertexStreams: {fileID: 0}
87+
--- !u!65 &7214813095658916597
88+
BoxCollider:
89+
m_ObjectHideFlags: 0
90+
m_CorrespondingSourceObject: {fileID: 0}
91+
m_PrefabInstance: {fileID: 0}
92+
m_PrefabAsset: {fileID: 0}
93+
m_GameObject: {fileID: 2214243159554248678}
94+
m_Material: {fileID: 0}
95+
m_IsTrigger: 0
96+
m_Enabled: 1
97+
serializedVersion: 2
98+
m_Size: {x: 1, y: 1, z: 1}
99+
m_Center: {x: 0, y: 0, z: 0}

MultiplayerDemo/Assets/Prefabs/Entities/Droid.prefab.meta

+7
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

MultiplayerDemo/Assets/Prefabs/Players.meta

+8
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

MultiplayerDemo/Assets/Scripts/Networking/Controllers/NetworkComponent.cs

+17
Original file line numberDiff line numberDiff line change
@@ -9,11 +9,14 @@ public class NetworkComponent : MonoBehaviour
99

1010
protected NetworkManager m_Manager;
1111

12+
protected bool m_DidEnable;
13+
1214
public virtual void Initialize(NetworkManager _manager) {
1315
if (debug) {
1416
Debug.Log("Initializing Network Component: "+this.GetType());
1517
}
1618
m_Manager = _manager;
19+
CallEnable();
1720
}
1821

1922
// These functions to be called for Unity Event Functions 'OnEnable' and 'OnDisable' respectively
@@ -24,5 +27,19 @@ protected void Log(string _msg) {
2427
if (!debug) return;
2528
Debug.Log("["+this.GetType()+"]: "+_msg);
2629
}
30+
31+
private void CallEnable() {
32+
if (m_DidEnable) return;
33+
m_DidEnable = true;
34+
Enable();
35+
}
36+
37+
private void OnEnable() {
38+
CallEnable();
39+
}
40+
41+
private void OnDisable() {
42+
Disable();
43+
}
2744
}
2845
}

MultiplayerDemo/Assets/Scripts/Networking/Controllers/NetworkEntityHandler.cs

+19
Original file line numberDiff line numberDiff line change
@@ -2,15 +2,20 @@
22
using System.Collections.Generic;
33
using UnityEngine;
44
using PlayNet.Models;
5+
using PlayNet.Entities;
56

67
namespace PlayNet.Networking {
78
public class NetworkEntityHandler : NetworkComponent
89
{
10+
public NetworkEntityDatabase entityDB;
11+
912
private Hashtable m_NPCs;
13+
private Hashtable m_EntityPrefabs;
1014

1115
public override void Initialize(NetworkManager _m) {
1216
base.Initialize(_m);
1317
m_NPCs = new Hashtable();
18+
BuildEntityDBPrefabReferences();
1419
}
1520

1621
public override void Enable() {
@@ -23,9 +28,23 @@ public override void Disable() {
2328
m_Manager.Listener.npcExitEvt.OnEvt -= OnNPCExit;
2429
}
2530

31+
private void BuildEntityDBPrefabReferences() {
32+
m_EntityPrefabs = new Hashtable();
33+
foreach (NetworkEntity _e in entityDB.Prefabs) {
34+
if (m_EntityPrefabs.ContainsKey(_e.nameQuery)) continue;
35+
m_EntityPrefabs.Add(_e.nameQuery, _e.Prefab);
36+
}
37+
}
38+
2639
private void OnNPCSpawn(NetworkNPCData _npc) {
2740
if (m_NPCs.ContainsKey(_npc.id)) return; // npc was already spawned
2841
Log("NPC spawned: "+_npc.id);
42+
if (!m_EntityPrefabs.ContainsKey(_npc.name)) return;
43+
GameObject _prefab = (GameObject)m_EntityPrefabs[_npc.name];
44+
GameObject _obj = Instantiate(_prefab,
45+
new Vector3(_npc.transform.pos.x, _npc.transform.pos.y, _npc.transform.pos.z),
46+
Quaternion.Euler(_npc.transform.rot.x, _npc.transform.rot.y, _npc.transform.rot.z));
47+
m_NPCs.Add(_npc.id, _obj);
2948
}
3049

3150
private void OnNPCExit(string _id) {

MultiplayerDemo/Assets/Scripts/Networking/Entities.meta

+8
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
using System.Collections;
2+
using UnityEngine;
3+
4+
namespace PlayNet.Entities {
5+
[CreateAssetMenu(fileName = "NetworkEntity", menuName = "PlayNet/NetworkEntity", order = 1)]
6+
public class NetworkEntity : ScriptableObject {
7+
public string nameQuery;
8+
public GameObject Prefab;
9+
}
10+
}

MultiplayerDemo/Assets/Scripts/Networking/Entities/NetworkEntity.cs.meta

+11
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
using System.Collections;
2+
using UnityEngine;
3+
4+
namespace PlayNet.Entities {
5+
[CreateAssetMenu(fileName = "NetworkEntity Database", menuName = "PlayNet/NetworkEntity Database", order = 1)]
6+
public class NetworkEntityDatabase : ScriptableObject {
7+
public NetworkEntity[] Prefabs;
8+
}
9+
}

MultiplayerDemo/Assets/Scripts/Networking/Entities/NetworkEntityDatabase.cs.meta

+11
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

server/src/scenes/TestScene.js

+3-1
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,9 @@ module.exports = (_game) => {
1010
return new Scene(
1111
// npcs
1212
[
13-
new NPC(_game, new droid(1, {x:0,y:1.1,z:0},{x:0,y:0,z:0}))
13+
new NPC(_game, new droid(1, {x:0,y:1.1,z:4},{x:0,y:0,z:0})),
14+
new NPC(_game, new droid(1, {x:-2,y:1.1,z:3.1},{x:0,y:0,z:0})),
15+
new NPC(_game, new droid(1, {x:-2.2,y:1.1,z:1.25},{x:0,y:0,z:0}))
1416
],
1517
waypointGraph
1618
)

0 commit comments

Comments
 (0)
0