mirror of
https://github.com/MirrorNetworking/Mirror.git
synced 2024-11-18 02:50:32 +00:00
Updated Additive Example (#956)
* Updated Additive Example * Renamed cube to visor
This commit is contained in:
parent
7490094904
commit
7f966c9afb
@ -1,87 +1,5 @@
|
|||||||
%YAML 1.1
|
%YAML 1.1
|
||||||
%TAG !u! tag:unity3d.com,2011:
|
%TAG !u! tag:unity3d.com,2011:
|
||||||
--- !u!1 &2720178739875597319
|
|
||||||
GameObject:
|
|
||||||
m_ObjectHideFlags: 0
|
|
||||||
m_CorrespondingSourceObject: {fileID: 0}
|
|
||||||
m_PrefabInstance: {fileID: 0}
|
|
||||||
m_PrefabAsset: {fileID: 0}
|
|
||||||
serializedVersion: 6
|
|
||||||
m_Component:
|
|
||||||
- component: {fileID: 8740139267343819840}
|
|
||||||
- component: {fileID: 1782430381883734809}
|
|
||||||
- component: {fileID: 3878212865935595091}
|
|
||||||
m_Layer: 0
|
|
||||||
m_Name: Camera
|
|
||||||
m_TagString: Untagged
|
|
||||||
m_Icon: {fileID: 0}
|
|
||||||
m_NavMeshLayer: 0
|
|
||||||
m_StaticEditorFlags: 0
|
|
||||||
m_IsActive: 1
|
|
||||||
--- !u!4 &8740139267343819840
|
|
||||||
Transform:
|
|
||||||
m_ObjectHideFlags: 0
|
|
||||||
m_CorrespondingSourceObject: {fileID: 0}
|
|
||||||
m_PrefabInstance: {fileID: 0}
|
|
||||||
m_PrefabAsset: {fileID: 0}
|
|
||||||
m_GameObject: {fileID: 2720178739875597319}
|
|
||||||
m_LocalRotation: {x: 0.08715578, y: -0, z: -0, w: 0.9961947}
|
|
||||||
m_LocalPosition: {x: 0, y: 3, z: -8}
|
|
||||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
|
||||||
m_Children: []
|
|
||||||
m_Father: {fileID: 5328458565928408179}
|
|
||||||
m_RootOrder: 1
|
|
||||||
m_LocalEulerAnglesHint: {x: 10, y: 0, z: 0}
|
|
||||||
--- !u!20 &1782430381883734809
|
|
||||||
Camera:
|
|
||||||
m_ObjectHideFlags: 0
|
|
||||||
m_CorrespondingSourceObject: {fileID: 0}
|
|
||||||
m_PrefabInstance: {fileID: 0}
|
|
||||||
m_PrefabAsset: {fileID: 0}
|
|
||||||
m_GameObject: {fileID: 2720178739875597319}
|
|
||||||
m_Enabled: 0
|
|
||||||
serializedVersion: 2
|
|
||||||
m_ClearFlags: 1
|
|
||||||
m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0}
|
|
||||||
m_projectionMatrixMode: 1
|
|
||||||
m_SensorSize: {x: 36, y: 24}
|
|
||||||
m_LensShift: {x: 0, y: 0}
|
|
||||||
m_GateFitMode: 2
|
|
||||||
m_FocalLength: 50
|
|
||||||
m_NormalizedViewPortRect:
|
|
||||||
serializedVersion: 2
|
|
||||||
x: 0
|
|
||||||
y: 0
|
|
||||||
width: 1
|
|
||||||
height: 1
|
|
||||||
near clip plane: 0.3
|
|
||||||
far clip plane: 1000
|
|
||||||
field of view: 60
|
|
||||||
orthographic: 0
|
|
||||||
orthographic size: 5
|
|
||||||
m_Depth: 0
|
|
||||||
m_CullingMask:
|
|
||||||
serializedVersion: 2
|
|
||||||
m_Bits: 4294967295
|
|
||||||
m_RenderingPath: -1
|
|
||||||
m_TargetTexture: {fileID: 0}
|
|
||||||
m_TargetDisplay: 0
|
|
||||||
m_TargetEye: 3
|
|
||||||
m_HDR: 1
|
|
||||||
m_AllowMSAA: 1
|
|
||||||
m_AllowDynamicResolution: 0
|
|
||||||
m_ForceIntoRT: 0
|
|
||||||
m_OcclusionCulling: 1
|
|
||||||
m_StereoConvergence: 10
|
|
||||||
m_StereoSeparation: 0.022
|
|
||||||
--- !u!81 &3878212865935595091
|
|
||||||
AudioListener:
|
|
||||||
m_ObjectHideFlags: 0
|
|
||||||
m_CorrespondingSourceObject: {fileID: 0}
|
|
||||||
m_PrefabInstance: {fileID: 0}
|
|
||||||
m_PrefabAsset: {fileID: 0}
|
|
||||||
m_GameObject: {fileID: 2720178739875597319}
|
|
||||||
m_Enabled: 1
|
|
||||||
--- !u!1 &5815001218983416211
|
--- !u!1 &5815001218983416211
|
||||||
GameObject:
|
GameObject:
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
@ -94,7 +12,7 @@ GameObject:
|
|||||||
- component: {fileID: 1800893346221236401}
|
- component: {fileID: 1800893346221236401}
|
||||||
- component: {fileID: 136369082707552984}
|
- component: {fileID: 136369082707552984}
|
||||||
m_Layer: 0
|
m_Layer: 0
|
||||||
m_Name: Cube
|
m_Name: Visor
|
||||||
m_TagString: Untagged
|
m_TagString: Untagged
|
||||||
m_Icon: {fileID: 0}
|
m_Icon: {fileID: 0}
|
||||||
m_NavMeshLayer: 0
|
m_NavMeshLayer: 0
|
||||||
@ -194,7 +112,6 @@ Transform:
|
|||||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||||
m_Children:
|
m_Children:
|
||||||
- {fileID: 3254954141432383832}
|
- {fileID: 3254954141432383832}
|
||||||
- {fileID: 8740139267343819840}
|
|
||||||
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}
|
||||||
@ -273,8 +190,8 @@ MonoBehaviour:
|
|||||||
m_Script: {fileID: 11500000, guid: 9b91ecbcc199f4492b9a91e820070131, type: 3}
|
m_Script: {fileID: 11500000, guid: 9b91ecbcc199f4492b9a91e820070131, type: 3}
|
||||||
m_Name:
|
m_Name:
|
||||||
m_EditorClassIdentifier:
|
m_EditorClassIdentifier:
|
||||||
m_ServerOnly: 0
|
serverOnly: 0
|
||||||
m_LocalPlayerAuthority: 1
|
localPlayerAuthority: 1
|
||||||
m_AssetId: a5bdca0a2315d43499be7dcef473fbc7
|
m_AssetId: a5bdca0a2315d43499be7dcef473fbc7
|
||||||
m_SceneId: 0
|
m_SceneId: 0
|
||||||
--- !u!114 &8704659178864205755
|
--- !u!114 &8704659178864205755
|
||||||
@ -289,15 +206,20 @@ MonoBehaviour:
|
|||||||
m_Script: {fileID: 11500000, guid: e8f68561248aaca4fb96847ce24742ee, type: 3}
|
m_Script: {fileID: 11500000, guid: e8f68561248aaca4fb96847ce24742ee, type: 3}
|
||||||
m_Name:
|
m_Name:
|
||||||
m_EditorClassIdentifier:
|
m_EditorClassIdentifier:
|
||||||
syncInterval: 0.1
|
syncInterval: 0
|
||||||
moveSpeed: 350
|
|
||||||
horiz: 0
|
|
||||||
vert: 0
|
|
||||||
turn: 0
|
|
||||||
turnSpeedAccel: 30
|
|
||||||
turnSpeedDecel: 30
|
|
||||||
maxTurnSpeed: 100
|
|
||||||
playerColor: {r: 0, g: 0, b: 0, a: 1}
|
playerColor: {r: 0, g: 0, b: 0, a: 1}
|
||||||
|
moveSpeed: 8
|
||||||
|
turnSpeedAccel: 5
|
||||||
|
turnSpeedDecel: 5
|
||||||
|
maxTurnSpeed: 150
|
||||||
|
jumpSpeed: 0
|
||||||
|
maxJumpSpeed: 5
|
||||||
|
jumpFactor: 0.05
|
||||||
|
horizontal: 0
|
||||||
|
vertical: 0
|
||||||
|
turn: 0
|
||||||
|
isGrounded: 1
|
||||||
|
isFalling: 0
|
||||||
--- !u!114 &887491563423388292
|
--- !u!114 &887491563423388292
|
||||||
MonoBehaviour:
|
MonoBehaviour:
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
|
@ -544,11 +544,11 @@ Camera:
|
|||||||
width: 1
|
width: 1
|
||||||
height: 1
|
height: 1
|
||||||
near clip plane: 0.3
|
near clip plane: 0.3
|
||||||
far clip plane: 11
|
far clip plane: 1000
|
||||||
field of view: 60
|
field of view: 60
|
||||||
orthographic: 1
|
orthographic: 0
|
||||||
orthographic size: 25
|
orthographic size: 5
|
||||||
m_Depth: -1
|
m_Depth: 0
|
||||||
m_CullingMask:
|
m_CullingMask:
|
||||||
serializedVersion: 2
|
serializedVersion: 2
|
||||||
m_Bits: 4294967295
|
m_Bits: 4294967295
|
||||||
@ -571,7 +571,7 @@ Transform:
|
|||||||
m_PrefabAsset: {fileID: 0}
|
m_PrefabAsset: {fileID: 0}
|
||||||
m_GameObject: {fileID: 534669902}
|
m_GameObject: {fileID: 534669902}
|
||||||
m_LocalRotation: {x: 0.7071068, y: 0, z: 0, w: 0.7071068}
|
m_LocalRotation: {x: 0.7071068, y: 0, z: 0, w: 0.7071068}
|
||||||
m_LocalPosition: {x: 0, y: 10, z: 0}
|
m_LocalPosition: {x: 0, y: 50, z: 0}
|
||||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||||
m_Children: []
|
m_Children: []
|
||||||
m_Father: {fileID: 0}
|
m_Father: {fileID: 0}
|
||||||
@ -1855,7 +1855,7 @@ MonoBehaviour:
|
|||||||
OnClientDataReceived:
|
OnClientDataReceived:
|
||||||
m_PersistentCalls:
|
m_PersistentCalls:
|
||||||
m_Calls: []
|
m_Calls: []
|
||||||
m_TypeName: Mirror.UnityEventByteArray, Mirror, Version=0.0.0.0, Culture=neutral,
|
m_TypeName: Mirror.UnityEventArraySegment, Mirror, Version=0.0.0.0, Culture=neutral,
|
||||||
PublicKeyToken=null
|
PublicKeyToken=null
|
||||||
OnClientError:
|
OnClientError:
|
||||||
m_PersistentCalls:
|
m_PersistentCalls:
|
||||||
@ -1874,7 +1874,7 @@ MonoBehaviour:
|
|||||||
OnServerDataReceived:
|
OnServerDataReceived:
|
||||||
m_PersistentCalls:
|
m_PersistentCalls:
|
||||||
m_Calls: []
|
m_Calls: []
|
||||||
m_TypeName: Mirror.UnityEventIntByteArray, Mirror, Version=0.0.0.0, Culture=neutral,
|
m_TypeName: Mirror.UnityEventIntArraySegment, Mirror, Version=0.0.0.0, Culture=neutral,
|
||||||
PublicKeyToken=null
|
PublicKeyToken=null
|
||||||
OnServerError:
|
OnServerError:
|
||||||
m_PersistentCalls:
|
m_PersistentCalls:
|
||||||
|
@ -21,7 +21,6 @@ public override void OnStartServer()
|
|||||||
SceneManager.LoadSceneAsync(sceneName, LoadSceneMode.Additive);
|
SceneManager.LoadSceneAsync(sceneName, LoadSceneMode.Additive);
|
||||||
Debug.LogFormat("Loaded {0}", sceneName);
|
Debug.LogFormat("Loaded {0}", sceneName);
|
||||||
}
|
}
|
||||||
//StartCoroutine(LoadScene(sceneName));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
IEnumerator LoadScene(string sceneName)
|
IEnumerator LoadScene(string sceneName)
|
||||||
|
@ -7,11 +7,6 @@ public class PlayerController : NetworkBehaviour
|
|||||||
{
|
{
|
||||||
CharacterController characterController;
|
CharacterController characterController;
|
||||||
|
|
||||||
public float moveSpeed = 300f;
|
|
||||||
public float maxTurnSpeed = 90f;
|
|
||||||
public float turnSpeedAccel = 30f;
|
|
||||||
public float turnSpeedDecel = 30f;
|
|
||||||
|
|
||||||
public override void OnStartServer()
|
public override void OnStartServer()
|
||||||
{
|
{
|
||||||
base.OnStartServer();
|
base.OnStartServer();
|
||||||
@ -21,22 +16,20 @@ public override void OnStartServer()
|
|||||||
[SyncVar(hook = nameof(SetColor))]
|
[SyncVar(hook = nameof(SetColor))]
|
||||||
public Color playerColor = Color.black;
|
public Color playerColor = Color.black;
|
||||||
|
|
||||||
// Unity makes a clone of the material when GetComponent<Renderer>().material is used
|
// Unity makes a clone of the material when GetComponent<Renderer>().material is used
|
||||||
// Cache it here and Destroy it in OnDestroy to prevent a memory leak
|
// Cache it here and Destroy it in OnDestroy to prevent a memory leak
|
||||||
Material materialClone;
|
Material materialClone;
|
||||||
|
|
||||||
void SetColor(Color color)
|
void SetColor(Color color)
|
||||||
{
|
{
|
||||||
if (materialClone == null) materialClone = GetComponent<Renderer>().material;
|
if (materialClone == null) materialClone = GetComponent<Renderer>().material;
|
||||||
materialClone.color = color;
|
materialClone.color = color;
|
||||||
}
|
}
|
||||||
|
|
||||||
private void OnDestroy()
|
private void OnDestroy()
|
||||||
{
|
{
|
||||||
Destroy(materialClone);
|
Destroy(materialClone);
|
||||||
}
|
}
|
||||||
|
|
||||||
Camera mainCam;
|
|
||||||
|
|
||||||
public override void OnStartLocalPlayer()
|
public override void OnStartLocalPlayer()
|
||||||
{
|
{
|
||||||
@ -44,31 +37,28 @@ public override void OnStartLocalPlayer()
|
|||||||
|
|
||||||
characterController = GetComponent<CharacterController>();
|
characterController = GetComponent<CharacterController>();
|
||||||
|
|
||||||
// Grab a refernce to the main camera so we can enable it again in OnDisable
|
Camera.main.transform.SetParent(transform);
|
||||||
mainCam = Camera.main;
|
Camera.main.transform.localPosition = new Vector3(0f, 3f, -8f);
|
||||||
|
Camera.main.transform.localEulerAngles = new Vector3(10f, 0f, 0f);
|
||||||
// Turn off the main camera because the Player prefab has its own camera
|
|
||||||
mainCam.enabled = false;
|
|
||||||
|
|
||||||
// Enable the local player's camera
|
|
||||||
GetComponentInChildren<Camera>().enabled = true;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void OnDisable()
|
[Header("Movement Settings")]
|
||||||
{
|
public float moveSpeed = 8f;
|
||||||
if (isLocalPlayer)
|
public float turnSpeedAccel = 5f;
|
||||||
{
|
public float turnSpeedDecel = 5f;
|
||||||
// Disable the local player's camera
|
public float maxTurnSpeed = 150f;
|
||||||
GetComponentInChildren<Camera>().enabled = false;
|
|
||||||
|
|
||||||
// Re-enable the main camera when Stop is pressed in the HUD
|
[Header("Jump Settings")]
|
||||||
if (mainCam != null) mainCam.enabled = true;
|
public float jumpSpeed = 0f;
|
||||||
}
|
public float maxJumpSpeed = 5F;
|
||||||
}
|
public float jumpFactor = .05F;
|
||||||
|
|
||||||
float horizontal = 0f;
|
[Header("Diagnostics")]
|
||||||
float vertical = 0f;
|
public float horizontal = 0f;
|
||||||
float turn = 0f;
|
public float vertical = 0f;
|
||||||
|
public float turn = 0f;
|
||||||
|
public bool isGrounded = true;
|
||||||
|
public bool isFalling = false;
|
||||||
|
|
||||||
void Update()
|
void Update()
|
||||||
{
|
{
|
||||||
@ -81,14 +71,21 @@ void Update()
|
|||||||
turn -= turnSpeedAccel;
|
turn -= turnSpeedAccel;
|
||||||
else if (Input.GetKey(KeyCode.E) && (turn < maxTurnSpeed))
|
else if (Input.GetKey(KeyCode.E) && (turn < maxTurnSpeed))
|
||||||
turn += turnSpeedAccel;
|
turn += turnSpeedAccel;
|
||||||
|
else if (turn > turnSpeedDecel)
|
||||||
|
turn -= turnSpeedDecel;
|
||||||
|
else if (turn < -turnSpeedDecel)
|
||||||
|
turn += turnSpeedDecel;
|
||||||
|
else
|
||||||
|
turn = 0f;
|
||||||
|
|
||||||
|
if (!isFalling && Input.GetKey(KeyCode.Space) && (isGrounded || jumpSpeed < maxJumpSpeed))
|
||||||
|
jumpSpeed += maxJumpSpeed * jumpFactor;
|
||||||
|
else if (isGrounded)
|
||||||
|
isFalling = false;
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if (turn > turnSpeedDecel)
|
isFalling = true;
|
||||||
turn -= turnSpeedDecel;
|
jumpSpeed = 0;
|
||||||
else if (turn < -turnSpeedDecel)
|
|
||||||
turn += turnSpeedDecel;
|
|
||||||
else
|
|
||||||
turn = 0f;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -98,9 +95,17 @@ void FixedUpdate()
|
|||||||
|
|
||||||
transform.Rotate(0f, turn * Time.fixedDeltaTime, 0f);
|
transform.Rotate(0f, turn * Time.fixedDeltaTime, 0f);
|
||||||
|
|
||||||
Vector3 direction = Vector3.ClampMagnitude(new Vector3(horizontal, 0f, vertical), 1f) * moveSpeed;
|
Vector3 direction = new Vector3(horizontal, jumpSpeed, vertical);
|
||||||
|
direction = Vector3.ClampMagnitude(direction, 1f);
|
||||||
direction = transform.TransformDirection(direction);
|
direction = transform.TransformDirection(direction);
|
||||||
characterController.SimpleMove(direction * Time.fixedDeltaTime);
|
direction *= moveSpeed;
|
||||||
|
|
||||||
|
if (jumpSpeed > 0)
|
||||||
|
characterController.Move(direction * Time.fixedDeltaTime);
|
||||||
|
else
|
||||||
|
characterController.SimpleMove(direction);
|
||||||
|
|
||||||
|
isGrounded = characterController.isGrounded;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -16,10 +16,10 @@ public enum LoadAction
|
|||||||
// Tell the client to load a single subscene
|
// Tell the client to load a single subscene
|
||||||
// This is called from ZoneHandler's server-only OnTrigger events
|
// This is called from ZoneHandler's server-only OnTrigger events
|
||||||
[TargetRpc]
|
[TargetRpc]
|
||||||
public void TargetLoadUnloadScene(NetworkConnection networkConnection, string SceneName, LoadAction loadAction)
|
public void TargetLoadUnloadScene(NetworkConnection networkConnection, string sceneName, LoadAction loadAction)
|
||||||
{
|
{
|
||||||
// Check if server here because we already pre-loaded the subscenes on the server
|
// Check if server here because we already pre-loaded the subscenes on the server
|
||||||
if (!isServer) StartCoroutine(LoadUnloadScene(SceneName, loadAction));
|
if (!isServer) StartCoroutine(LoadUnloadScene(sceneName, loadAction));
|
||||||
}
|
}
|
||||||
|
|
||||||
// isBusy protects us from being overwhelmed by server messages to load several subscenes at once.
|
// isBusy protects us from being overwhelmed by server messages to load several subscenes at once.
|
||||||
|
@ -8,7 +8,7 @@ namespace Mirror.Examples.Additive
|
|||||||
public class ShootingTankBehaviour : NetworkBehaviour
|
public class ShootingTankBehaviour : NetworkBehaviour
|
||||||
{
|
{
|
||||||
[SyncVar]
|
[SyncVar]
|
||||||
public Quaternion Rotation;
|
public Quaternion rotation;
|
||||||
|
|
||||||
NetworkAnimator networkAnimator;
|
NetworkAnimator networkAnimator;
|
||||||
|
|
||||||
@ -27,7 +27,7 @@ void Update()
|
|||||||
ShootNearestPlayer();
|
ShootNearestPlayer();
|
||||||
|
|
||||||
if (isClient)
|
if (isClient)
|
||||||
transform.rotation = Quaternion.Slerp(transform.rotation, Rotation, turnSpeed);
|
transform.rotation = Quaternion.Slerp(transform.rotation, rotation, turnSpeed);
|
||||||
}
|
}
|
||||||
|
|
||||||
[Server]
|
[Server]
|
||||||
@ -51,7 +51,7 @@ void ShootNearestPlayer()
|
|||||||
if (target != null)
|
if (target != null)
|
||||||
{
|
{
|
||||||
transform.LookAt(target.transform.position + Vector3.down);
|
transform.LookAt(target.transform.position + Vector3.down);
|
||||||
Rotation = transform.rotation;
|
rotation = transform.rotation;
|
||||||
networkAnimator.SetTrigger("Fire");
|
networkAnimator.SetTrigger("Fire");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user