mirror of
https://github.com/MirrorNetworking/Mirror.git
synced 2024-11-18 02:50:32 +00:00
Compare commits
13 Commits
f6b03767b0
...
41c2d2a4b7
Author | SHA1 | Date | |
---|---|---|---|
|
41c2d2a4b7 | ||
|
8e83da26b4 | ||
|
ae1edff268 | ||
|
e70be519e7 | ||
|
6e71c5e918 | ||
|
51947ba9b5 | ||
|
4eb1a62f18 | ||
|
741efbd227 | ||
|
c55e8731c8 | ||
|
3af336f665 | ||
|
04bb95311b | ||
|
e9a8e02a40 | ||
|
bb97db4eaa |
2
.github/workflows/RunUnityTests.yml
vendored
2
.github/workflows/RunUnityTests.yml
vendored
@ -16,7 +16,7 @@ jobs:
|
|||||||
- 2021.3.45f1
|
- 2021.3.45f1
|
||||||
- 2022.3.51f1
|
- 2022.3.51f1
|
||||||
- 2023.2.20f1
|
- 2023.2.20f1
|
||||||
- 6000.0.24f1
|
- 6000.0.25f1
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout repository
|
- name: Checkout repository
|
||||||
|
@ -54,8 +54,8 @@ public class NetworkTransformHybrid2022 : NetworkBehaviour
|
|||||||
|
|
||||||
// save last deserialized baseline to delta decompress against
|
// save last deserialized baseline to delta decompress against
|
||||||
byte lastDeserializedBaselineTick = 0;
|
byte lastDeserializedBaselineTick = 0;
|
||||||
Vector3 lastDeserializedBaselinePosition = Vector3.zero;
|
Vector3 lastDeserializedBaselinePosition = Vector3.zero; // unused, but keep for delta
|
||||||
Quaternion lastDeserializedBaselineRotation = Quaternion.identity;
|
Quaternion lastDeserializedBaselineRotation = Quaternion.identity; // unused, but keep for delta
|
||||||
|
|
||||||
// only sync when changed hack /////////////////////////////////////////
|
// only sync when changed hack /////////////////////////////////////////
|
||||||
[Header("Sync Only If Changed")]
|
[Header("Sync Only If Changed")]
|
||||||
@ -107,14 +107,6 @@ public class NetworkTransformHybrid2022 : NetworkBehaviour
|
|||||||
public bool showOverlay;
|
public bool showOverlay;
|
||||||
public Color overlayColor = new Color(0, 0, 0, 0.5f);
|
public Color overlayColor = new Color(0, 0, 0, 0.5f);
|
||||||
|
|
||||||
// caching /////////////////////////////////////////////////////////////
|
|
||||||
// squared values for faster distance checks
|
|
||||||
// float positionPrecisionSqr;
|
|
||||||
// float scalePrecisionSqr;
|
|
||||||
|
|
||||||
// dedicated writer to avoid Pool.Get calls. NT is in hot path.
|
|
||||||
readonly NetworkWriter writer = new NetworkWriter();
|
|
||||||
|
|
||||||
// initialization //////////////////////////////////////////////////////
|
// initialization //////////////////////////////////////////////////////
|
||||||
// make sure to call this when inheriting too!
|
// make sure to call this when inheriting too!
|
||||||
protected virtual void Awake() {}
|
protected virtual void Awake() {}
|
||||||
@ -130,26 +122,6 @@ protected override void OnValidate()
|
|||||||
syncInterval = 0;
|
syncInterval = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
// snapshot functions //////////////////////////////////////////////////
|
|
||||||
// construct a snapshot of the current state
|
|
||||||
// => internal for testing
|
|
||||||
protected virtual TransformSnapshot ConstructSnapshot()
|
|
||||||
{
|
|
||||||
// perf
|
|
||||||
target.GetLocalPositionAndRotation(out Vector3 localPosition, out Quaternion localRotation);
|
|
||||||
|
|
||||||
// NetworkTime.localTime for double precision until Unity has it too
|
|
||||||
return new TransformSnapshot(
|
|
||||||
// our local time is what the other end uses as remote time
|
|
||||||
Time.timeAsDouble,
|
|
||||||
// the other end fills out local time itself
|
|
||||||
0,
|
|
||||||
localPosition, // target.localPosition,
|
|
||||||
localRotation, // target.localRotation,
|
|
||||||
Vector3.zero // target.localScale
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
// apply a snapshot to the Transform.
|
// apply a snapshot to the Transform.
|
||||||
// -> start, end, interpolated are all passed in caes they are needed
|
// -> start, end, interpolated are all passed in caes they are needed
|
||||||
// -> a regular game would apply the 'interpolated' snapshot
|
// -> a regular game would apply the 'interpolated' snapshot
|
||||||
@ -183,8 +155,6 @@ bool Changed(Vector3 currentPosition, Quaternion currentRotation)//, Vector3 cur
|
|||||||
{
|
{
|
||||||
float positionDelta = Vector3.Distance(currentPosition, lastSerializedBaselinePosition);
|
float positionDelta = Vector3.Distance(currentPosition, lastSerializedBaselinePosition);
|
||||||
if (positionDelta >= positionSensitivity)
|
if (positionDelta >= positionSensitivity)
|
||||||
// float positionChange = (currentPosition - lastPosition).sqrMagnitude;
|
|
||||||
// if (positionChange >= positionPrecisionSqr)
|
|
||||||
{
|
{
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
@ -276,7 +246,7 @@ void CmdClientToServerDelta_PositionRotation(byte baselineTick, Vector3 position
|
|||||||
}
|
}
|
||||||
|
|
||||||
// local authority client sends sync message to server for broadcasting
|
// local authority client sends sync message to server for broadcasting
|
||||||
protected virtual void OnClientToServerDeltaSync(byte baselineTick, Vector3? position, Quaternion? rotation)//, Vector3? scale)
|
protected virtual void OnClientToServerDeltaSync(byte baselineTick, Vector3 position, Quaternion rotation)//, Vector3 scale)
|
||||||
{
|
{
|
||||||
// only apply if in client authority mode
|
// only apply if in client authority mode
|
||||||
if (syncDirection != SyncDirection.ClientToServer) return;
|
if (syncDirection != SyncDirection.ClientToServer) return;
|
||||||
@ -286,10 +256,7 @@ protected virtual void OnClientToServerDeltaSync(byte baselineTick, Vector3? pos
|
|||||||
if (baselineTick != lastDeserializedBaselineTick)
|
if (baselineTick != lastDeserializedBaselineTick)
|
||||||
{
|
{
|
||||||
// debug draw: drop
|
// debug draw: drop
|
||||||
if (debugDraw)
|
if (debugDraw) Debug.DrawLine(position, position + Vector3.up, Color.red, 10f);
|
||||||
{
|
|
||||||
if (position.HasValue) Debug.DrawLine(position.Value, position.Value + Vector3.up, Color.red, 10f);
|
|
||||||
}
|
|
||||||
|
|
||||||
// this can happen if unreliable arrives before reliable etc.
|
// this can happen if unreliable arrives before reliable etc.
|
||||||
// no need to log this except when debugging.
|
// no need to log this except when debugging.
|
||||||
@ -304,19 +271,6 @@ protected virtual void OnClientToServerDeltaSync(byte baselineTick, Vector3? pos
|
|||||||
// server. we can get the timestamp from the connection.
|
// server. we can get the timestamp from the connection.
|
||||||
double timestamp = connectionToClient.remoteTimeStamp;
|
double timestamp = connectionToClient.remoteTimeStamp;
|
||||||
|
|
||||||
// position, rotation, scale can have no value if same as last time.
|
|
||||||
// saves bandwidth.
|
|
||||||
// but we still need to feed it to snapshot interpolation. we can't
|
|
||||||
// just have gaps in there if nothing has changed. for example, if
|
|
||||||
// client sends snapshot at t=0
|
|
||||||
// client sends nothing for 10s because not moved
|
|
||||||
// client sends snapshot at t=10
|
|
||||||
// then the server would assume that it's one super slow move and
|
|
||||||
// replay it for 10 seconds.
|
|
||||||
if (!position.HasValue) position = serverSnapshots.Count > 0 ? serverSnapshots.Values[serverSnapshots.Count - 1].position : target.localPosition;
|
|
||||||
if (!rotation.HasValue) rotation = serverSnapshots.Count > 0 ? serverSnapshots.Values[serverSnapshots.Count - 1].rotation : target.localRotation;
|
|
||||||
// if (!scale.HasValue) scale = serverSnapshots.Count > 0 ? serverSnapshots.Values[serverSnapshots.Count - 1].scale : target.localScale;
|
|
||||||
|
|
||||||
// insert transform snapshot
|
// insert transform snapshot
|
||||||
SnapshotInterpolation.InsertIfNotExists(
|
SnapshotInterpolation.InsertIfNotExists(
|
||||||
serverSnapshots,
|
serverSnapshots,
|
||||||
@ -324,8 +278,8 @@ protected virtual void OnClientToServerDeltaSync(byte baselineTick, Vector3? pos
|
|||||||
new TransformSnapshot(
|
new TransformSnapshot(
|
||||||
timestamp, // arrival remote timestamp. NOT remote time.
|
timestamp, // arrival remote timestamp. NOT remote time.
|
||||||
Time.timeAsDouble,
|
Time.timeAsDouble,
|
||||||
position.Value,
|
position,
|
||||||
rotation.Value,
|
rotation,
|
||||||
Vector3.one // scale
|
Vector3.one // scale
|
||||||
));
|
));
|
||||||
}
|
}
|
||||||
@ -474,10 +428,7 @@ protected virtual void OnServerToClientDeltaSync(byte baselineTick, Vector3 posi
|
|||||||
if (baselineTick != lastDeserializedBaselineTick)
|
if (baselineTick != lastDeserializedBaselineTick)
|
||||||
{
|
{
|
||||||
// debug draw: drop
|
// debug draw: drop
|
||||||
if (debugDraw)
|
if (debugDraw) Debug.DrawLine(position, position + Vector3.up, Color.red, 10f);
|
||||||
{
|
|
||||||
Debug.DrawLine(position, position + Vector3.up, Color.red, 10f);
|
|
||||||
}
|
|
||||||
|
|
||||||
// this can happen if unreliable arrives before reliable etc.
|
// this can happen if unreliable arrives before reliable etc.
|
||||||
// no need to log this except when debugging.
|
// no need to log this except when debugging.
|
||||||
@ -540,20 +491,17 @@ void UpdateServerBaseline(double localTime)
|
|||||||
byte frameCount = (byte)Time.frameCount; // perf: only access Time.frameCount once!
|
byte frameCount = (byte)Time.frameCount; // perf: only access Time.frameCount once!
|
||||||
if (syncPosition && syncRotation)
|
if (syncPosition && syncRotation)
|
||||||
{
|
{
|
||||||
// send snapshot without timestamp.
|
// no unreliable redundancy: baseline is reliable
|
||||||
// receiver gets it from batch timestamp to save bandwidth.
|
|
||||||
RpcServerToClientBaseline_PositionRotation(frameCount, position, rotation);
|
RpcServerToClientBaseline_PositionRotation(frameCount, position, rotation);
|
||||||
}
|
}
|
||||||
else if (syncPosition)
|
else if (syncPosition)
|
||||||
{
|
{
|
||||||
// send snapshot without timestamp.
|
// no unreliable redundancy: baseline is reliable
|
||||||
// receiver gets it from batch timestamp to save bandwidth.
|
|
||||||
RpcServerToClientBaseline_Position(frameCount, position);
|
RpcServerToClientBaseline_Position(frameCount, position);
|
||||||
}
|
}
|
||||||
else if (syncRotation)
|
else if (syncRotation)
|
||||||
{
|
{
|
||||||
// send snapshot without timestamp.
|
// no unreliable redundancy: baseline is reliable
|
||||||
// receiver gets it from batch timestamp to save bandwidth.
|
|
||||||
RpcServerToClientBaseline_Rotation(frameCount, rotation);
|
RpcServerToClientBaseline_Rotation(frameCount, rotation);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -640,8 +588,6 @@ void UpdateServerDelta(double localTime)
|
|||||||
// -> Vector3? and Quaternion? nullables takes more bandwidth
|
// -> Vector3? and Quaternion? nullables takes more bandwidth
|
||||||
if (syncPosition && syncRotation)
|
if (syncPosition && syncRotation)
|
||||||
{
|
{
|
||||||
// send snapshot without timestamp.
|
|
||||||
// receiver gets it from batch timestamp to save bandwidth.
|
|
||||||
// unreliable redundancy to make up for potential message drops
|
// unreliable redundancy to make up for potential message drops
|
||||||
RpcServerToClientDelta_PositionRotation(lastSerializedBaselineTick, position, rotation);
|
RpcServerToClientDelta_PositionRotation(lastSerializedBaselineTick, position, rotation);
|
||||||
if (unreliableRedundancy)
|
if (unreliableRedundancy)
|
||||||
@ -649,8 +595,6 @@ void UpdateServerDelta(double localTime)
|
|||||||
}
|
}
|
||||||
else if (syncPosition)
|
else if (syncPosition)
|
||||||
{
|
{
|
||||||
// send snapshot without timestamp.
|
|
||||||
// receiver gets it from batch timestamp to save bandwidth.
|
|
||||||
// unreliable redundancy to make up for potential message drops
|
// unreliable redundancy to make up for potential message drops
|
||||||
RpcServerToClientDelta_Position(lastSerializedBaselineTick, position);
|
RpcServerToClientDelta_Position(lastSerializedBaselineTick, position);
|
||||||
if (unreliableRedundancy)
|
if (unreliableRedundancy)
|
||||||
@ -658,8 +602,6 @@ void UpdateServerDelta(double localTime)
|
|||||||
}
|
}
|
||||||
else if (syncRotation)
|
else if (syncRotation)
|
||||||
{
|
{
|
||||||
// send snapshot without timestamp.
|
|
||||||
// receiver gets it from batch timestamp to save bandwidth.
|
|
||||||
// unreliable redundancy to make up for potential message drops
|
// unreliable redundancy to make up for potential message drops
|
||||||
RpcServerToClientDelta_Rotation(lastSerializedBaselineTick, rotation);
|
RpcServerToClientDelta_Rotation(lastSerializedBaselineTick, rotation);
|
||||||
if (unreliableRedundancy)
|
if (unreliableRedundancy)
|
||||||
@ -741,20 +683,17 @@ void UpdateClientBaseline(double localTime)
|
|||||||
byte frameCount = (byte)Time.frameCount; // perf: only access Time.frameCount once!
|
byte frameCount = (byte)Time.frameCount; // perf: only access Time.frameCount once!
|
||||||
if (syncPosition && syncRotation)
|
if (syncPosition && syncRotation)
|
||||||
{
|
{
|
||||||
// send snapshot without timestamp.
|
// no unreliable redundancy: baseline is reliable
|
||||||
// receiver gets it from batch timestamp to save bandwidth.
|
|
||||||
CmdClientToServerBaseline_PositionRotation(frameCount, position, rotation);
|
CmdClientToServerBaseline_PositionRotation(frameCount, position, rotation);
|
||||||
}
|
}
|
||||||
else if (syncPosition)
|
else if (syncPosition)
|
||||||
{
|
{
|
||||||
// send snapshot without timestamp.
|
// no unreliable redundancy: baseline is reliable
|
||||||
// receiver gets it from batch timestamp to save bandwidth.
|
|
||||||
CmdClientToServerBaseline_Position(frameCount, position);
|
CmdClientToServerBaseline_Position(frameCount, position);
|
||||||
}
|
}
|
||||||
else if (syncRotation)
|
else if (syncRotation)
|
||||||
{
|
{
|
||||||
// send snapshot without timestamp.
|
// no unreliable redundancy: baseline is reliable
|
||||||
// receiver gets it from batch timestamp to save bandwidth.
|
|
||||||
CmdClientToServerBaseline_Rotation(frameCount, rotation);
|
CmdClientToServerBaseline_Rotation(frameCount, rotation);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -831,8 +770,6 @@ void UpdateClientDelta(double localTime)
|
|||||||
// -> Vector3? and Quaternion? nullables takes more bandwidth
|
// -> Vector3? and Quaternion? nullables takes more bandwidth
|
||||||
if (syncPosition && syncRotation)
|
if (syncPosition && syncRotation)
|
||||||
{
|
{
|
||||||
// send snapshot without timestamp.
|
|
||||||
// receiver gets it from batch timestamp to save bandwidth.
|
|
||||||
// unreliable redundancy to make up for potential message drops
|
// unreliable redundancy to make up for potential message drops
|
||||||
CmdClientToServerDelta_PositionRotation(lastSerializedBaselineTick, position, rotation);
|
CmdClientToServerDelta_PositionRotation(lastSerializedBaselineTick, position, rotation);
|
||||||
if (unreliableRedundancy)
|
if (unreliableRedundancy)
|
||||||
@ -841,8 +778,6 @@ void UpdateClientDelta(double localTime)
|
|||||||
}
|
}
|
||||||
else if (syncPosition)
|
else if (syncPosition)
|
||||||
{
|
{
|
||||||
// send snapshot without timestamp.
|
|
||||||
// receiver gets it from batch timestamp to save bandwidth.
|
|
||||||
// unreliable redundancy to make up for potential message drops
|
// unreliable redundancy to make up for potential message drops
|
||||||
CmdClientToServerDelta_Position(lastSerializedBaselineTick, position);
|
CmdClientToServerDelta_Position(lastSerializedBaselineTick, position);
|
||||||
if (unreliableRedundancy)
|
if (unreliableRedundancy)
|
||||||
@ -850,8 +785,6 @@ void UpdateClientDelta(double localTime)
|
|||||||
}
|
}
|
||||||
else if (syncRotation)
|
else if (syncRotation)
|
||||||
{
|
{
|
||||||
// send snapshot without timestamp.
|
|
||||||
// receiver gets it from batch timestamp to save bandwidth.
|
|
||||||
// unreliable redundancy to make up for potential message drops
|
// unreliable redundancy to make up for potential message drops
|
||||||
CmdClientToServerDelta_Rotation(lastSerializedBaselineTick, rotation);
|
CmdClientToServerDelta_Rotation(lastSerializedBaselineTick, rotation);
|
||||||
if (unreliableRedundancy)
|
if (unreliableRedundancy)
|
||||||
@ -1067,14 +1000,16 @@ public override void OnSerialize(NetworkWriter writer, bool initialState)
|
|||||||
if (initialState)
|
if (initialState)
|
||||||
{
|
{
|
||||||
// spawn message is used as first baseline.
|
// spawn message is used as first baseline.
|
||||||
TransformSnapshot snapshot = ConstructSnapshot();
|
// perf: get position/rotation directly. TransformSnapshot is too expensive.
|
||||||
|
// TransformSnapshot snapshot = ConstructSnapshot();
|
||||||
|
target.GetLocalPositionAndRotation(out Vector3 position, out Quaternion rotation);
|
||||||
|
|
||||||
// always include the tick for deltas to compare against.
|
// always include the tick for deltas to compare against.
|
||||||
byte frameCount = (byte)Time.frameCount; // perf: only access Time.frameCount once!
|
byte frameCount = (byte)Time.frameCount; // perf: only access Time.frameCount once!
|
||||||
writer.WriteByte(frameCount);
|
writer.WriteByte(frameCount);
|
||||||
|
|
||||||
if (syncPosition) writer.WriteVector3(snapshot.position);
|
if (syncPosition) writer.WriteVector3(position);
|
||||||
if (syncRotation) writer.WriteQuaternion(snapshot.rotation);
|
if (syncRotation) writer.WriteQuaternion(rotation);
|
||||||
|
|
||||||
// IMPORTANT
|
// IMPORTANT
|
||||||
// OnSerialize(initial) is called for the spawn payload whenever
|
// OnSerialize(initial) is called for the spawn payload whenever
|
||||||
@ -1088,8 +1023,8 @@ public override void OnSerialize(NetworkWriter writer, bool initialState)
|
|||||||
// => client's baseline is t=2 but receives delta for t=1 _!_
|
// => client's baseline is t=2 but receives delta for t=1 _!_
|
||||||
lastSerializedBaselineTick = frameCount;
|
lastSerializedBaselineTick = frameCount;
|
||||||
lastBaselineTime = NetworkTime.localTime;
|
lastBaselineTime = NetworkTime.localTime;
|
||||||
lastSerializedBaselinePosition = snapshot.position;
|
lastSerializedBaselinePosition = position;
|
||||||
lastSerializedBaselineRotation = snapshot.rotation;
|
lastSerializedBaselineRotation = rotation;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -5,7 +5,7 @@ MonoImporter:
|
|||||||
serializedVersion: 2
|
serializedVersion: 2
|
||||||
defaultReferences: []
|
defaultReferences: []
|
||||||
executionOrder: 0
|
executionOrder: 0
|
||||||
icon: {instanceID: 0}
|
icon: {fileID: 2800000, guid: 7453abfe9e8b2c04a8a47eb536fe21eb, type: 3}
|
||||||
userData:
|
userData:
|
||||||
assetBundleName:
|
assetBundleName:
|
||||||
assetBundleVariant:
|
assetBundleVariant:
|
||||||
|
@ -1,5 +1,111 @@
|
|||||||
%YAML 1.1
|
%YAML 1.1
|
||||||
%TAG !u! tag:unity3d.com,2011:
|
%TAG !u! tag:unity3d.com,2011:
|
||||||
|
--- !u!1 &2505838817581327622
|
||||||
|
GameObject:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
serializedVersion: 6
|
||||||
|
m_Component:
|
||||||
|
- component: {fileID: 8070823805368028938}
|
||||||
|
- component: {fileID: 9066655185906928051}
|
||||||
|
- component: {fileID: 4760233786622638652}
|
||||||
|
- component: {fileID: 2239866139065920034}
|
||||||
|
m_Layer: 0
|
||||||
|
m_Name: PlayerName
|
||||||
|
m_TagString: Untagged
|
||||||
|
m_Icon: {fileID: 0}
|
||||||
|
m_NavMeshLayer: 0
|
||||||
|
m_StaticEditorFlags: 0
|
||||||
|
m_IsActive: 1
|
||||||
|
--- !u!4 &8070823805368028938
|
||||||
|
Transform:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 2505838817581327622}
|
||||||
|
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
|
||||||
|
m_LocalPosition: {x: 0, y: 1.4999999, z: 0}
|
||||||
|
m_LocalScale: {x: 0.1, y: 0.1, z: 0.1}
|
||||||
|
m_Children: []
|
||||||
|
m_Father: {fileID: 5650773562400175449}
|
||||||
|
m_RootOrder: 1
|
||||||
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
|
--- !u!23 &9066655185906928051
|
||||||
|
MeshRenderer:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 2505838817581327622}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_CastShadows: 1
|
||||||
|
m_ReceiveShadows: 1
|
||||||
|
m_DynamicOccludee: 1
|
||||||
|
m_MotionVectors: 1
|
||||||
|
m_LightProbeUsage: 1
|
||||||
|
m_ReflectionProbeUsage: 1
|
||||||
|
m_RayTracingMode: 2
|
||||||
|
m_RenderingLayerMask: 1
|
||||||
|
m_RendererPriority: 0
|
||||||
|
m_Materials:
|
||||||
|
- {fileID: 10100, guid: 0000000000000000e000000000000000, type: 0}
|
||||||
|
m_StaticBatchInfo:
|
||||||
|
firstSubMesh: 0
|
||||||
|
subMeshCount: 0
|
||||||
|
m_StaticBatchRoot: {fileID: 0}
|
||||||
|
m_ProbeAnchor: {fileID: 0}
|
||||||
|
m_LightProbeVolumeOverride: {fileID: 0}
|
||||||
|
m_ScaleInLightmap: 1
|
||||||
|
m_ReceiveGI: 1
|
||||||
|
m_PreserveUVs: 0
|
||||||
|
m_IgnoreNormalsForChartDetection: 0
|
||||||
|
m_ImportantGI: 0
|
||||||
|
m_StitchLightmapSeams: 1
|
||||||
|
m_SelectedEditorRenderState: 3
|
||||||
|
m_MinimumChartSize: 4
|
||||||
|
m_AutoUVMaxDistance: 0.5
|
||||||
|
m_AutoUVMaxAngle: 89
|
||||||
|
m_LightmapParameters: {fileID: 0}
|
||||||
|
m_SortingLayerID: 0
|
||||||
|
m_SortingLayer: 0
|
||||||
|
m_SortingOrder: 0
|
||||||
|
--- !u!102 &4760233786622638652
|
||||||
|
TextMesh:
|
||||||
|
serializedVersion: 3
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 2505838817581327622}
|
||||||
|
m_Text: RB Reliable
|
||||||
|
m_OffsetZ: 0
|
||||||
|
m_CharacterSize: 0.5
|
||||||
|
m_LineSpacing: 1
|
||||||
|
m_Anchor: 4
|
||||||
|
m_Alignment: 1
|
||||||
|
m_TabSize: 4
|
||||||
|
m_FontSize: 100
|
||||||
|
m_FontStyle: 0
|
||||||
|
m_RichText: 1
|
||||||
|
m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0}
|
||||||
|
m_Color:
|
||||||
|
serializedVersion: 2
|
||||||
|
rgba: 4294967040
|
||||||
|
--- !u!114 &2239866139065920034
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 2505838817581327622}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: afa2d590c474413d9fc183551385ed85, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier:
|
||||||
--- !u!1 &3564599214188516024
|
--- !u!1 &3564599214188516024
|
||||||
GameObject:
|
GameObject:
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
@ -194,6 +300,7 @@ Transform:
|
|||||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||||
m_Children:
|
m_Children:
|
||||||
- {fileID: 4320229852458648655}
|
- {fileID: 4320229852458648655}
|
||||||
|
- {fileID: 8070823805368028938}
|
||||||
m_Father: {fileID: 0}
|
m_Father: {fileID: 0}
|
||||||
m_RootOrder: 0
|
m_RootOrder: 0
|
||||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
|
@ -1,5 +1,111 @@
|
|||||||
%YAML 1.1
|
%YAML 1.1
|
||||||
%TAG !u! tag:unity3d.com,2011:
|
%TAG !u! tag:unity3d.com,2011:
|
||||||
|
--- !u!1 &1900176203039934355
|
||||||
|
GameObject:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
serializedVersion: 6
|
||||||
|
m_Component:
|
||||||
|
- component: {fileID: 4129545300081926521}
|
||||||
|
- component: {fileID: 6572775962608386051}
|
||||||
|
- component: {fileID: 3912971638250293984}
|
||||||
|
- component: {fileID: 4630973873820678624}
|
||||||
|
m_Layer: 0
|
||||||
|
m_Name: PlayerName
|
||||||
|
m_TagString: Untagged
|
||||||
|
m_Icon: {fileID: 0}
|
||||||
|
m_NavMeshLayer: 0
|
||||||
|
m_StaticEditorFlags: 0
|
||||||
|
m_IsActive: 1
|
||||||
|
--- !u!4 &4129545300081926521
|
||||||
|
Transform:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 1900176203039934355}
|
||||||
|
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
|
||||||
|
m_LocalPosition: {x: 0, y: 1.4999999, z: 0}
|
||||||
|
m_LocalScale: {x: 0.1, y: 0.1, z: 0.1}
|
||||||
|
m_Children: []
|
||||||
|
m_Father: {fileID: 6814142693731383418}
|
||||||
|
m_RootOrder: 1
|
||||||
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
|
--- !u!23 &6572775962608386051
|
||||||
|
MeshRenderer:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 1900176203039934355}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_CastShadows: 1
|
||||||
|
m_ReceiveShadows: 1
|
||||||
|
m_DynamicOccludee: 1
|
||||||
|
m_MotionVectors: 1
|
||||||
|
m_LightProbeUsage: 1
|
||||||
|
m_ReflectionProbeUsage: 1
|
||||||
|
m_RayTracingMode: 2
|
||||||
|
m_RenderingLayerMask: 1
|
||||||
|
m_RendererPriority: 0
|
||||||
|
m_Materials:
|
||||||
|
- {fileID: 10100, guid: 0000000000000000e000000000000000, type: 0}
|
||||||
|
m_StaticBatchInfo:
|
||||||
|
firstSubMesh: 0
|
||||||
|
subMeshCount: 0
|
||||||
|
m_StaticBatchRoot: {fileID: 0}
|
||||||
|
m_ProbeAnchor: {fileID: 0}
|
||||||
|
m_LightProbeVolumeOverride: {fileID: 0}
|
||||||
|
m_ScaleInLightmap: 1
|
||||||
|
m_ReceiveGI: 1
|
||||||
|
m_PreserveUVs: 0
|
||||||
|
m_IgnoreNormalsForChartDetection: 0
|
||||||
|
m_ImportantGI: 0
|
||||||
|
m_StitchLightmapSeams: 1
|
||||||
|
m_SelectedEditorRenderState: 3
|
||||||
|
m_MinimumChartSize: 4
|
||||||
|
m_AutoUVMaxDistance: 0.5
|
||||||
|
m_AutoUVMaxAngle: 89
|
||||||
|
m_LightmapParameters: {fileID: 0}
|
||||||
|
m_SortingLayerID: 0
|
||||||
|
m_SortingLayer: 0
|
||||||
|
m_SortingOrder: 0
|
||||||
|
--- !u!102 &3912971638250293984
|
||||||
|
TextMesh:
|
||||||
|
serializedVersion: 3
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 1900176203039934355}
|
||||||
|
m_Text: RB Unreliable
|
||||||
|
m_OffsetZ: 0
|
||||||
|
m_CharacterSize: 0.5
|
||||||
|
m_LineSpacing: 1
|
||||||
|
m_Anchor: 4
|
||||||
|
m_Alignment: 1
|
||||||
|
m_TabSize: 4
|
||||||
|
m_FontSize: 100
|
||||||
|
m_FontStyle: 0
|
||||||
|
m_RichText: 1
|
||||||
|
m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0}
|
||||||
|
m_Color:
|
||||||
|
serializedVersion: 2
|
||||||
|
rgba: 4278255615
|
||||||
|
--- !u!114 &4630973873820678624
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 1900176203039934355}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: afa2d590c474413d9fc183551385ed85, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier:
|
||||||
--- !u!1 &2414815785185615771
|
--- !u!1 &2414815785185615771
|
||||||
GameObject:
|
GameObject:
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
@ -194,6 +300,7 @@ Transform:
|
|||||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||||
m_Children:
|
m_Children:
|
||||||
- {fileID: 3102887894851733868}
|
- {fileID: 3102887894851733868}
|
||||||
|
- {fileID: 4129545300081926521}
|
||||||
m_Father: {fileID: 0}
|
m_Father: {fileID: 0}
|
||||||
m_RootOrder: 0
|
m_RootOrder: 0
|
||||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
|
@ -79,6 +79,112 @@ MeshRenderer:
|
|||||||
m_SortingLayerID: 0
|
m_SortingLayerID: 0
|
||||||
m_SortingLayer: 0
|
m_SortingLayer: 0
|
||||||
m_SortingOrder: 0
|
m_SortingOrder: 0
|
||||||
|
--- !u!1 &5366675989284536270
|
||||||
|
GameObject:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
serializedVersion: 6
|
||||||
|
m_Component:
|
||||||
|
- component: {fileID: 1545974004720046327}
|
||||||
|
- component: {fileID: 1128890847761595466}
|
||||||
|
- component: {fileID: 396193860522376263}
|
||||||
|
- component: {fileID: 6075803386746488465}
|
||||||
|
m_Layer: 0
|
||||||
|
m_Name: PlayerName
|
||||||
|
m_TagString: Untagged
|
||||||
|
m_Icon: {fileID: 0}
|
||||||
|
m_NavMeshLayer: 0
|
||||||
|
m_StaticEditorFlags: 0
|
||||||
|
m_IsActive: 1
|
||||||
|
--- !u!4 &1545974004720046327
|
||||||
|
Transform:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 5366675989284536270}
|
||||||
|
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
|
||||||
|
m_LocalPosition: {x: 0, y: 1.5, z: 0}
|
||||||
|
m_LocalScale: {x: 0.1, y: 0.1, z: 0.1}
|
||||||
|
m_Children: []
|
||||||
|
m_Father: {fileID: 4659514702152478195}
|
||||||
|
m_RootOrder: 1
|
||||||
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
|
--- !u!23 &1128890847761595466
|
||||||
|
MeshRenderer:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 5366675989284536270}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_CastShadows: 1
|
||||||
|
m_ReceiveShadows: 1
|
||||||
|
m_DynamicOccludee: 1
|
||||||
|
m_MotionVectors: 1
|
||||||
|
m_LightProbeUsage: 1
|
||||||
|
m_ReflectionProbeUsage: 1
|
||||||
|
m_RayTracingMode: 2
|
||||||
|
m_RenderingLayerMask: 1
|
||||||
|
m_RendererPriority: 0
|
||||||
|
m_Materials:
|
||||||
|
- {fileID: 10100, guid: 0000000000000000e000000000000000, type: 0}
|
||||||
|
m_StaticBatchInfo:
|
||||||
|
firstSubMesh: 0
|
||||||
|
subMeshCount: 0
|
||||||
|
m_StaticBatchRoot: {fileID: 0}
|
||||||
|
m_ProbeAnchor: {fileID: 0}
|
||||||
|
m_LightProbeVolumeOverride: {fileID: 0}
|
||||||
|
m_ScaleInLightmap: 1
|
||||||
|
m_ReceiveGI: 1
|
||||||
|
m_PreserveUVs: 0
|
||||||
|
m_IgnoreNormalsForChartDetection: 0
|
||||||
|
m_ImportantGI: 0
|
||||||
|
m_StitchLightmapSeams: 1
|
||||||
|
m_SelectedEditorRenderState: 3
|
||||||
|
m_MinimumChartSize: 4
|
||||||
|
m_AutoUVMaxDistance: 0.5
|
||||||
|
m_AutoUVMaxAngle: 89
|
||||||
|
m_LightmapParameters: {fileID: 0}
|
||||||
|
m_SortingLayerID: 0
|
||||||
|
m_SortingLayer: 0
|
||||||
|
m_SortingOrder: 0
|
||||||
|
--- !u!102 &396193860522376263
|
||||||
|
TextMesh:
|
||||||
|
serializedVersion: 3
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 5366675989284536270}
|
||||||
|
m_Text: Reliable
|
||||||
|
m_OffsetZ: 0
|
||||||
|
m_CharacterSize: 0.5
|
||||||
|
m_LineSpacing: 1
|
||||||
|
m_Anchor: 4
|
||||||
|
m_Alignment: 1
|
||||||
|
m_TabSize: 4
|
||||||
|
m_FontSize: 100
|
||||||
|
m_FontStyle: 0
|
||||||
|
m_RichText: 1
|
||||||
|
m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0}
|
||||||
|
m_Color:
|
||||||
|
serializedVersion: 2
|
||||||
|
rgba: 4294967040
|
||||||
|
--- !u!114 &6075803386746488465
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 5366675989284536270}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: afa2d590c474413d9fc183551385ed85, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier:
|
||||||
--- !u!1 &5844787331012650587
|
--- !u!1 &5844787331012650587
|
||||||
GameObject:
|
GameObject:
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
@ -195,6 +301,7 @@ Transform:
|
|||||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||||
m_Children:
|
m_Children:
|
||||||
- {fileID: 3834521907656645861}
|
- {fileID: 3834521907656645861}
|
||||||
|
- {fileID: 1545974004720046327}
|
||||||
m_Father: {fileID: 0}
|
m_Father: {fileID: 0}
|
||||||
m_RootOrder: 0
|
m_RootOrder: 0
|
||||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
|
@ -159,6 +159,112 @@ MeshRenderer:
|
|||||||
m_SortingLayerID: 0
|
m_SortingLayerID: 0
|
||||||
m_SortingLayer: 0
|
m_SortingLayer: 0
|
||||||
m_SortingOrder: 0
|
m_SortingOrder: 0
|
||||||
|
--- !u!1 &7554601580530514207
|
||||||
|
GameObject:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
serializedVersion: 6
|
||||||
|
m_Component:
|
||||||
|
- component: {fileID: 8679949096303753939}
|
||||||
|
- component: {fileID: 3142866354055383265}
|
||||||
|
- component: {fileID: 8297296856940116434}
|
||||||
|
- component: {fileID: 1123801447343694564}
|
||||||
|
m_Layer: 0
|
||||||
|
m_Name: PlayerName
|
||||||
|
m_TagString: Untagged
|
||||||
|
m_Icon: {fileID: 0}
|
||||||
|
m_NavMeshLayer: 0
|
||||||
|
m_StaticEditorFlags: 0
|
||||||
|
m_IsActive: 1
|
||||||
|
--- !u!4 &8679949096303753939
|
||||||
|
Transform:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 7554601580530514207}
|
||||||
|
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
|
||||||
|
m_LocalPosition: {x: 0, y: 1.4999999, z: 0}
|
||||||
|
m_LocalScale: {x: 0.1, y: 0.1, z: 0.1}
|
||||||
|
m_Children: []
|
||||||
|
m_Father: {fileID: 4659514702152478195}
|
||||||
|
m_RootOrder: 1
|
||||||
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
|
--- !u!23 &3142866354055383265
|
||||||
|
MeshRenderer:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 7554601580530514207}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_CastShadows: 1
|
||||||
|
m_ReceiveShadows: 1
|
||||||
|
m_DynamicOccludee: 1
|
||||||
|
m_MotionVectors: 1
|
||||||
|
m_LightProbeUsage: 1
|
||||||
|
m_ReflectionProbeUsage: 1
|
||||||
|
m_RayTracingMode: 2
|
||||||
|
m_RenderingLayerMask: 1
|
||||||
|
m_RendererPriority: 0
|
||||||
|
m_Materials:
|
||||||
|
- {fileID: 10100, guid: 0000000000000000e000000000000000, type: 0}
|
||||||
|
m_StaticBatchInfo:
|
||||||
|
firstSubMesh: 0
|
||||||
|
subMeshCount: 0
|
||||||
|
m_StaticBatchRoot: {fileID: 0}
|
||||||
|
m_ProbeAnchor: {fileID: 0}
|
||||||
|
m_LightProbeVolumeOverride: {fileID: 0}
|
||||||
|
m_ScaleInLightmap: 1
|
||||||
|
m_ReceiveGI: 1
|
||||||
|
m_PreserveUVs: 0
|
||||||
|
m_IgnoreNormalsForChartDetection: 0
|
||||||
|
m_ImportantGI: 0
|
||||||
|
m_StitchLightmapSeams: 1
|
||||||
|
m_SelectedEditorRenderState: 3
|
||||||
|
m_MinimumChartSize: 4
|
||||||
|
m_AutoUVMaxDistance: 0.5
|
||||||
|
m_AutoUVMaxAngle: 89
|
||||||
|
m_LightmapParameters: {fileID: 0}
|
||||||
|
m_SortingLayerID: 0
|
||||||
|
m_SortingLayer: 0
|
||||||
|
m_SortingOrder: 0
|
||||||
|
--- !u!102 &8297296856940116434
|
||||||
|
TextMesh:
|
||||||
|
serializedVersion: 3
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 7554601580530514207}
|
||||||
|
m_Text: Unreliable
|
||||||
|
m_OffsetZ: 0
|
||||||
|
m_CharacterSize: 0.5
|
||||||
|
m_LineSpacing: 1
|
||||||
|
m_Anchor: 4
|
||||||
|
m_Alignment: 1
|
||||||
|
m_TabSize: 4
|
||||||
|
m_FontSize: 100
|
||||||
|
m_FontStyle: 0
|
||||||
|
m_RichText: 1
|
||||||
|
m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0}
|
||||||
|
m_Color:
|
||||||
|
serializedVersion: 2
|
||||||
|
rgba: 4278255615
|
||||||
|
--- !u!114 &1123801447343694564
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 7554601580530514207}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: afa2d590c474413d9fc183551385ed85, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier:
|
||||||
--- !u!1 &7863680369626900553
|
--- !u!1 &7863680369626900553
|
||||||
GameObject:
|
GameObject:
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
@ -195,6 +301,7 @@ Transform:
|
|||||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||||
m_Children:
|
m_Children:
|
||||||
- {fileID: 3834521907656645861}
|
- {fileID: 3834521907656645861}
|
||||||
|
- {fileID: 8679949096303753939}
|
||||||
m_Father: {fileID: 0}
|
m_Father: {fileID: 0}
|
||||||
m_RootOrder: 0
|
m_RootOrder: 0
|
||||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
|
@ -38,6 +38,7 @@ Transform:
|
|||||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||||
m_Children:
|
m_Children:
|
||||||
- {fileID: 702109291309605218}
|
- {fileID: 702109291309605218}
|
||||||
|
- {fileID: 1245118046271587945}
|
||||||
- {fileID: 8174595063106582951}
|
- {fileID: 8174595063106582951}
|
||||||
m_Father: {fileID: 0}
|
m_Father: {fileID: 0}
|
||||||
m_RootOrder: 0
|
m_RootOrder: 0
|
||||||
@ -197,7 +198,6 @@ MonoBehaviour:
|
|||||||
maxTurnSpeed: 100
|
maxTurnSpeed: 100
|
||||||
turnAcceleration: 3
|
turnAcceleration: 3
|
||||||
runtimeData:
|
runtimeData:
|
||||||
_horizontal: 0
|
|
||||||
_vertical: 0
|
_vertical: 0
|
||||||
_turnSpeed: 0
|
_turnSpeed: 0
|
||||||
_animVelocity: 0
|
_animVelocity: 0
|
||||||
@ -328,6 +328,112 @@ MonoBehaviour:
|
|||||||
rotationSensitivity: 0.01
|
rotationSensitivity: 0.01
|
||||||
positionPrecision: 0.01
|
positionPrecision: 0.01
|
||||||
scalePrecision: 0.01
|
scalePrecision: 0.01
|
||||||
|
--- !u!1 &8370326626297540303
|
||||||
|
GameObject:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
serializedVersion: 6
|
||||||
|
m_Component:
|
||||||
|
- component: {fileID: 1245118046271587945}
|
||||||
|
- component: {fileID: 2132579043257509693}
|
||||||
|
- component: {fileID: 7297775110981071875}
|
||||||
|
- component: {fileID: 755026988438523126}
|
||||||
|
m_Layer: 0
|
||||||
|
m_Name: PlayerName
|
||||||
|
m_TagString: Untagged
|
||||||
|
m_Icon: {fileID: 0}
|
||||||
|
m_NavMeshLayer: 0
|
||||||
|
m_StaticEditorFlags: 0
|
||||||
|
m_IsActive: 1
|
||||||
|
--- !u!4 &1245118046271587945
|
||||||
|
Transform:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 8370326626297540303}
|
||||||
|
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
|
||||||
|
m_LocalPosition: {x: 0, y: 4.5, z: 0}
|
||||||
|
m_LocalScale: {x: 0.1, y: 0.1, z: 0.1}
|
||||||
|
m_Children: []
|
||||||
|
m_Father: {fileID: 4659514702152478195}
|
||||||
|
m_RootOrder: 1
|
||||||
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
|
--- !u!23 &2132579043257509693
|
||||||
|
MeshRenderer:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 8370326626297540303}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_CastShadows: 1
|
||||||
|
m_ReceiveShadows: 1
|
||||||
|
m_DynamicOccludee: 1
|
||||||
|
m_MotionVectors: 1
|
||||||
|
m_LightProbeUsage: 1
|
||||||
|
m_ReflectionProbeUsage: 1
|
||||||
|
m_RayTracingMode: 2
|
||||||
|
m_RenderingLayerMask: 1
|
||||||
|
m_RendererPriority: 0
|
||||||
|
m_Materials:
|
||||||
|
- {fileID: 10100, guid: 0000000000000000e000000000000000, type: 0}
|
||||||
|
m_StaticBatchInfo:
|
||||||
|
firstSubMesh: 0
|
||||||
|
subMeshCount: 0
|
||||||
|
m_StaticBatchRoot: {fileID: 0}
|
||||||
|
m_ProbeAnchor: {fileID: 0}
|
||||||
|
m_LightProbeVolumeOverride: {fileID: 0}
|
||||||
|
m_ScaleInLightmap: 1
|
||||||
|
m_ReceiveGI: 1
|
||||||
|
m_PreserveUVs: 0
|
||||||
|
m_IgnoreNormalsForChartDetection: 0
|
||||||
|
m_ImportantGI: 0
|
||||||
|
m_StitchLightmapSeams: 1
|
||||||
|
m_SelectedEditorRenderState: 3
|
||||||
|
m_MinimumChartSize: 4
|
||||||
|
m_AutoUVMaxDistance: 0.5
|
||||||
|
m_AutoUVMaxAngle: 89
|
||||||
|
m_LightmapParameters: {fileID: 0}
|
||||||
|
m_SortingLayerID: 0
|
||||||
|
m_SortingLayer: 0
|
||||||
|
m_SortingOrder: 0
|
||||||
|
--- !u!102 &7297775110981071875
|
||||||
|
TextMesh:
|
||||||
|
serializedVersion: 3
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 8370326626297540303}
|
||||||
|
m_Text: Reliable
|
||||||
|
m_OffsetZ: 0
|
||||||
|
m_CharacterSize: 0.5
|
||||||
|
m_LineSpacing: 1
|
||||||
|
m_Anchor: 4
|
||||||
|
m_Alignment: 1
|
||||||
|
m_TabSize: 4
|
||||||
|
m_FontSize: 100
|
||||||
|
m_FontStyle: 0
|
||||||
|
m_RichText: 1
|
||||||
|
m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0}
|
||||||
|
m_Color:
|
||||||
|
serializedVersion: 2
|
||||||
|
rgba: 4294967040
|
||||||
|
--- !u!114 &755026988438523126
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 8370326626297540303}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: afa2d590c474413d9fc183551385ed85, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier:
|
||||||
--- !u!1 &9109672380512621037
|
--- !u!1 &9109672380512621037
|
||||||
GameObject:
|
GameObject:
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
@ -359,7 +465,7 @@ Transform:
|
|||||||
m_LocalScale: {x: 0.1, y: 0.1, z: 0.1}
|
m_LocalScale: {x: 0.1, y: 0.1, z: 0.1}
|
||||||
m_Children: []
|
m_Children: []
|
||||||
m_Father: {fileID: 4659514702152478195}
|
m_Father: {fileID: 4659514702152478195}
|
||||||
m_RootOrder: 1
|
m_RootOrder: 2
|
||||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
--- !u!23 &4153780752967283830
|
--- !u!23 &4153780752967283830
|
||||||
MeshRenderer:
|
MeshRenderer:
|
||||||
@ -446,6 +552,11 @@ PrefabInstance:
|
|||||||
propertyPath: m_Name
|
propertyPath: m_Name
|
||||||
value: BasePrefab
|
value: BasePrefab
|
||||||
objectReference: {fileID: 0}
|
objectReference: {fileID: 0}
|
||||||
|
- target: {fileID: 3638700596990361445, guid: dad07e68d3659e6439279d0d4110cf4c,
|
||||||
|
type: 3}
|
||||||
|
propertyPath: m_RootOrder
|
||||||
|
value: 0
|
||||||
|
objectReference: {fileID: 0}
|
||||||
- target: {fileID: 3638700596990361445, guid: dad07e68d3659e6439279d0d4110cf4c,
|
- target: {fileID: 3638700596990361445, guid: dad07e68d3659e6439279d0d4110cf4c,
|
||||||
type: 3}
|
type: 3}
|
||||||
propertyPath: m_LocalPosition.x
|
propertyPath: m_LocalPosition.x
|
||||||
|
@ -38,6 +38,7 @@ Transform:
|
|||||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||||
m_Children:
|
m_Children:
|
||||||
- {fileID: 702109291309605218}
|
- {fileID: 702109291309605218}
|
||||||
|
- {fileID: 3980373565918037634}
|
||||||
- {fileID: 8174595063106582951}
|
- {fileID: 8174595063106582951}
|
||||||
m_Father: {fileID: 0}
|
m_Father: {fileID: 0}
|
||||||
m_RootOrder: 0
|
m_RootOrder: 0
|
||||||
@ -197,7 +198,6 @@ MonoBehaviour:
|
|||||||
maxTurnSpeed: 100
|
maxTurnSpeed: 100
|
||||||
turnAcceleration: 3
|
turnAcceleration: 3
|
||||||
runtimeData:
|
runtimeData:
|
||||||
_horizontal: 0
|
|
||||||
_vertical: 0
|
_vertical: 0
|
||||||
_turnSpeed: 0
|
_turnSpeed: 0
|
||||||
_animVelocity: 0
|
_animVelocity: 0
|
||||||
@ -328,6 +328,112 @@ MonoBehaviour:
|
|||||||
positionSensitivity: 0.01
|
positionSensitivity: 0.01
|
||||||
rotationSensitivity: 0.01
|
rotationSensitivity: 0.01
|
||||||
scaleSensitivity: 0.01
|
scaleSensitivity: 0.01
|
||||||
|
--- !u!1 &8921157218750951074
|
||||||
|
GameObject:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
serializedVersion: 6
|
||||||
|
m_Component:
|
||||||
|
- component: {fileID: 3980373565918037634}
|
||||||
|
- component: {fileID: 6676747655999921495}
|
||||||
|
- component: {fileID: 2065557788844610204}
|
||||||
|
- component: {fileID: 7150452883383585942}
|
||||||
|
m_Layer: 0
|
||||||
|
m_Name: PlayerName
|
||||||
|
m_TagString: Untagged
|
||||||
|
m_Icon: {fileID: 0}
|
||||||
|
m_NavMeshLayer: 0
|
||||||
|
m_StaticEditorFlags: 0
|
||||||
|
m_IsActive: 1
|
||||||
|
--- !u!4 &3980373565918037634
|
||||||
|
Transform:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 8921157218750951074}
|
||||||
|
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
|
||||||
|
m_LocalPosition: {x: 0, y: 4.5, z: 0}
|
||||||
|
m_LocalScale: {x: 0.1, y: 0.1, z: 0.1}
|
||||||
|
m_Children: []
|
||||||
|
m_Father: {fileID: 4659514702152478195}
|
||||||
|
m_RootOrder: 1
|
||||||
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
|
--- !u!23 &6676747655999921495
|
||||||
|
MeshRenderer:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 8921157218750951074}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_CastShadows: 1
|
||||||
|
m_ReceiveShadows: 1
|
||||||
|
m_DynamicOccludee: 1
|
||||||
|
m_MotionVectors: 1
|
||||||
|
m_LightProbeUsage: 1
|
||||||
|
m_ReflectionProbeUsage: 1
|
||||||
|
m_RayTracingMode: 2
|
||||||
|
m_RenderingLayerMask: 1
|
||||||
|
m_RendererPriority: 0
|
||||||
|
m_Materials:
|
||||||
|
- {fileID: 10100, guid: 0000000000000000e000000000000000, type: 0}
|
||||||
|
m_StaticBatchInfo:
|
||||||
|
firstSubMesh: 0
|
||||||
|
subMeshCount: 0
|
||||||
|
m_StaticBatchRoot: {fileID: 0}
|
||||||
|
m_ProbeAnchor: {fileID: 0}
|
||||||
|
m_LightProbeVolumeOverride: {fileID: 0}
|
||||||
|
m_ScaleInLightmap: 1
|
||||||
|
m_ReceiveGI: 1
|
||||||
|
m_PreserveUVs: 0
|
||||||
|
m_IgnoreNormalsForChartDetection: 0
|
||||||
|
m_ImportantGI: 0
|
||||||
|
m_StitchLightmapSeams: 1
|
||||||
|
m_SelectedEditorRenderState: 3
|
||||||
|
m_MinimumChartSize: 4
|
||||||
|
m_AutoUVMaxDistance: 0.5
|
||||||
|
m_AutoUVMaxAngle: 89
|
||||||
|
m_LightmapParameters: {fileID: 0}
|
||||||
|
m_SortingLayerID: 0
|
||||||
|
m_SortingLayer: 0
|
||||||
|
m_SortingOrder: 0
|
||||||
|
--- !u!102 &2065557788844610204
|
||||||
|
TextMesh:
|
||||||
|
serializedVersion: 3
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 8921157218750951074}
|
||||||
|
m_Text: Unreliable
|
||||||
|
m_OffsetZ: 0
|
||||||
|
m_CharacterSize: 0.5
|
||||||
|
m_LineSpacing: 1
|
||||||
|
m_Anchor: 4
|
||||||
|
m_Alignment: 1
|
||||||
|
m_TabSize: 4
|
||||||
|
m_FontSize: 100
|
||||||
|
m_FontStyle: 0
|
||||||
|
m_RichText: 1
|
||||||
|
m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0}
|
||||||
|
m_Color:
|
||||||
|
serializedVersion: 2
|
||||||
|
rgba: 4278255615
|
||||||
|
--- !u!114 &7150452883383585942
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 8921157218750951074}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: afa2d590c474413d9fc183551385ed85, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier:
|
||||||
--- !u!1 &9109672380512621037
|
--- !u!1 &9109672380512621037
|
||||||
GameObject:
|
GameObject:
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
@ -359,7 +465,7 @@ Transform:
|
|||||||
m_LocalScale: {x: 0.1, y: 0.1, z: 0.1}
|
m_LocalScale: {x: 0.1, y: 0.1, z: 0.1}
|
||||||
m_Children: []
|
m_Children: []
|
||||||
m_Father: {fileID: 4659514702152478195}
|
m_Father: {fileID: 4659514702152478195}
|
||||||
m_RootOrder: 1
|
m_RootOrder: 2
|
||||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
--- !u!23 &4153780752967283830
|
--- !u!23 &4153780752967283830
|
||||||
MeshRenderer:
|
MeshRenderer:
|
||||||
@ -446,6 +552,11 @@ PrefabInstance:
|
|||||||
propertyPath: m_Name
|
propertyPath: m_Name
|
||||||
value: BasePrefab
|
value: BasePrefab
|
||||||
objectReference: {fileID: 0}
|
objectReference: {fileID: 0}
|
||||||
|
- target: {fileID: 3638700596990361445, guid: dad07e68d3659e6439279d0d4110cf4c,
|
||||||
|
type: 3}
|
||||||
|
propertyPath: m_RootOrder
|
||||||
|
value: 0
|
||||||
|
objectReference: {fileID: 0}
|
||||||
- target: {fileID: 3638700596990361445, guid: dad07e68d3659e6439279d0d4110cf4c,
|
- target: {fileID: 3638700596990361445, guid: dad07e68d3659e6439279d0d4110cf4c,
|
||||||
type: 3}
|
type: 3}
|
||||||
propertyPath: m_LocalPosition.x
|
propertyPath: m_LocalPosition.x
|
||||||
|
@ -19,11 +19,6 @@ void Awake()
|
|||||||
mainCam = Camera.main;
|
mainCam = Camera.main;
|
||||||
}
|
}
|
||||||
|
|
||||||
void OnDisable()
|
|
||||||
{
|
|
||||||
//Debug.Log("PlayerCamera.OnDisable");
|
|
||||||
}
|
|
||||||
|
|
||||||
public override void OnStartLocalPlayer()
|
public override void OnStartLocalPlayer()
|
||||||
{
|
{
|
||||||
if (mainCam != null)
|
if (mainCam != null)
|
||||||
@ -38,16 +33,46 @@ public override void OnStartLocalPlayer()
|
|||||||
Debug.LogWarning("PlayerCamera: Could not find a camera in scene with 'MainCamera' tag.");
|
Debug.LogWarning("PlayerCamera: Could not find a camera in scene with 'MainCamera' tag.");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void OnApplicationQuit()
|
||||||
|
{
|
||||||
|
//Debug.Log("PlayerCamera.OnApplicationQuit");
|
||||||
|
ReleaseCamera();
|
||||||
|
}
|
||||||
|
|
||||||
public override void OnStopLocalPlayer()
|
public override void OnStopLocalPlayer()
|
||||||
|
{
|
||||||
|
//Debug.Log("PlayerCamera.OnStopLocalPlayer");
|
||||||
|
ReleaseCamera();
|
||||||
|
}
|
||||||
|
|
||||||
|
void OnDisable()
|
||||||
|
{
|
||||||
|
//Debug.Log("PlayerCamera.OnDisable");
|
||||||
|
ReleaseCamera();
|
||||||
|
}
|
||||||
|
|
||||||
|
void OnDestroy()
|
||||||
|
{
|
||||||
|
//Debug.Log("PlayerCamera.OnDestroy");
|
||||||
|
ReleaseCamera();
|
||||||
|
}
|
||||||
|
|
||||||
|
void ReleaseCamera()
|
||||||
{
|
{
|
||||||
if (mainCam != null && mainCam.transform.parent == transform)
|
if (mainCam != null && mainCam.transform.parent == transform)
|
||||||
{
|
{
|
||||||
|
//Debug.Log("PlayerCamera.ReleaseCamera");
|
||||||
|
|
||||||
mainCam.transform.SetParent(null);
|
mainCam.transform.SetParent(null);
|
||||||
SceneManager.MoveGameObjectToScene(mainCam.gameObject, SceneManager.GetActiveScene());
|
|
||||||
mainCam.orthographic = true;
|
mainCam.orthographic = true;
|
||||||
mainCam.orthographicSize = 15f;
|
mainCam.orthographicSize = 15f;
|
||||||
mainCam.transform.localPosition = new Vector3(0f, 70f, 0f);
|
mainCam.transform.localPosition = new Vector3(0f, 70f, 0f);
|
||||||
mainCam.transform.localEulerAngles = new Vector3(90f, 0f, 0f);
|
mainCam.transform.localEulerAngles = new Vector3(90f, 0f, 0f);
|
||||||
|
|
||||||
|
if (mainCam.gameObject.scene != SceneManager.GetActiveScene())
|
||||||
|
SceneManager.MoveGameObjectToScene(mainCam.gameObject, SceneManager.GetActiveScene());
|
||||||
|
|
||||||
|
mainCam = null;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user