48 lines
1.4 KiB
C#
48 lines
1.4 KiB
C#
using UnityEngine;
|
|
using Mirror;
|
|
|
|
namespace Mirror.Examples.Hex3D
|
|
{
|
|
[AddComponentMenu("")]
|
|
public class Hex3DPlayer : NetworkBehaviour
|
|
{
|
|
[Range(1, 20)]
|
|
public float speed = 10;
|
|
|
|
void Update()
|
|
{
|
|
if (!isLocalPlayer) return;
|
|
|
|
float h = Input.GetAxis("Horizontal");
|
|
float v = Input.GetAxis("Vertical");
|
|
|
|
// if left shift is held, apply v to y instead of z
|
|
if (Input.GetKey(KeyCode.LeftShift) || Input.GetKey(KeyCode.RightShift))
|
|
{
|
|
Vector3 dir = new Vector3(h, v, 0);
|
|
transform.position += dir.normalized * (Time.deltaTime * speed);
|
|
}
|
|
else
|
|
{
|
|
Vector3 dir = new Vector3(h, 0, v);
|
|
transform.position += dir.normalized * (Time.deltaTime * speed);
|
|
}
|
|
|
|
if (Input.GetKey(KeyCode.Q))
|
|
transform.Rotate(Vector3.up, -90 * Time.deltaTime);
|
|
if (Input.GetKey(KeyCode.E))
|
|
transform.Rotate(Vector3.up, 90 * Time.deltaTime);
|
|
}
|
|
|
|
void OnGUI()
|
|
{
|
|
if (isLocalPlayer)
|
|
{
|
|
GUILayout.BeginArea(new Rect(10, Screen.height - 50, 300, 300));
|
|
GUILayout.Label("Use WASD+QE to move and rotate\nHold Shift with W/S to move up/down");
|
|
GUILayout.EndArea();
|
|
}
|
|
}
|
|
}
|
|
}
|