diff --git a/Assets/Player/Player.cs b/Assets/Player/Player.cs new file mode 100644 index 0000000..31941eb --- /dev/null +++ b/Assets/Player/Player.cs @@ -0,0 +1,121 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +public class Player : MonoBehaviour +{ + private Item netItem; + public bool ForceLocal; + + public bool IsLocal + { + get + { + return ForceLocal || (netItem != null && netItem.IsLocal); + } + } + + private UIHookup uiHookup; + + private CharacterController charControl; + // Start is called before the first frame update + void Awake() + { + netItem = GetComponentInChildren(); + castLight = transform.Find("CastLight").gameObject; + + uiHookup = FindObjectOfType(); + + if (ForceLocal) + { + StartLocal(); + } + } + + private GameObject castLight; + private float bottomOffset; + void StartLocal() + { + castLight.SetActive(true); + charControl = GetComponentInChildren(); + charControl.enabled = true; + + bottomOffset = -charControl.center.y + charControl.height * 0.5f; + } + + public float Speed; + + private List touches = new List(); + + public float MoveTouchFullZone = 0.7f; + public float MoveTouchRadiusSize = 1.45f; + + // Update is called once per frame + void Update() + { + if (IsLocal && charControl != null) + { + RaycastHit hit; + if (Physics.Raycast(new Ray(transform.position, Vector3.down), out hit, 10f)) + { + Vector3 pos = transform.position; + pos.y = hit.point.y + (bottomOffset + 0.01f); + transform.position = pos; + } + + Vector3 wantMove = new Vector3(); + + if (Input.GetKey(KeyCode.UpArrow)) + { + wantMove.z += 1; + } + if (Input.GetKey(KeyCode.DownArrow)) + { + wantMove.z -= 1; + } + if (Input.GetKey(KeyCode.RightArrow)) + { + wantMove.x += 1; + } + if (Input.GetKey(KeyCode.LeftArrow)) + { + wantMove.x -= 1; + } + + wantMove.Normalize(); + + if (uiHookup != null && uiHookup.MoveTouch != null && uiHookup.MainCanvas != null) + { + float radius = uiHookup.MoveTouch.rect.width * 0.5f * MoveTouchRadiusSize; + + touches.Clear(); + touches.AddRange(Input.touches); + + if (Input.GetMouseButton(0)) + { + touches.Add(new Touch { position = Input.mousePosition }); + } + + foreach (Touch touch in touches) + { + Vector2 diff = new Vector2(); + RectTransformUtility.ScreenPointToLocalPointInRectangle(uiHookup.MoveTouch, touch.position, null, out diff); + if (diff.magnitude < radius) + { + wantMove = new Vector3(diff.x, 0, diff.y) / (radius * MoveTouchFullZone); + if (wantMove.magnitude > 1) wantMove.Normalize(); + } + } + } + + + + if (wantMove.sqrMagnitude > 0) + { + wantMove *= Speed * Time.deltaTime; + wantMove.y = -0.1f * Time.deltaTime; + CollisionFlags flags = charControl.Move(wantMove); + } + } + } +} diff --git a/Assets/Player/Player.cs b/Assets/Player/Player.cs new file mode 100644 index 0000000..31941eb --- /dev/null +++ b/Assets/Player/Player.cs @@ -0,0 +1,121 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +public class Player : MonoBehaviour +{ + private Item netItem; + public bool ForceLocal; + + public bool IsLocal + { + get + { + return ForceLocal || (netItem != null && netItem.IsLocal); + } + } + + private UIHookup uiHookup; + + private CharacterController charControl; + // Start is called before the first frame update + void Awake() + { + netItem = GetComponentInChildren(); + castLight = transform.Find("CastLight").gameObject; + + uiHookup = FindObjectOfType(); + + if (ForceLocal) + { + StartLocal(); + } + } + + private GameObject castLight; + private float bottomOffset; + void StartLocal() + { + castLight.SetActive(true); + charControl = GetComponentInChildren(); + charControl.enabled = true; + + bottomOffset = -charControl.center.y + charControl.height * 0.5f; + } + + public float Speed; + + private List touches = new List(); + + public float MoveTouchFullZone = 0.7f; + public float MoveTouchRadiusSize = 1.45f; + + // Update is called once per frame + void Update() + { + if (IsLocal && charControl != null) + { + RaycastHit hit; + if (Physics.Raycast(new Ray(transform.position, Vector3.down), out hit, 10f)) + { + Vector3 pos = transform.position; + pos.y = hit.point.y + (bottomOffset + 0.01f); + transform.position = pos; + } + + Vector3 wantMove = new Vector3(); + + if (Input.GetKey(KeyCode.UpArrow)) + { + wantMove.z += 1; + } + if (Input.GetKey(KeyCode.DownArrow)) + { + wantMove.z -= 1; + } + if (Input.GetKey(KeyCode.RightArrow)) + { + wantMove.x += 1; + } + if (Input.GetKey(KeyCode.LeftArrow)) + { + wantMove.x -= 1; + } + + wantMove.Normalize(); + + if (uiHookup != null && uiHookup.MoveTouch != null && uiHookup.MainCanvas != null) + { + float radius = uiHookup.MoveTouch.rect.width * 0.5f * MoveTouchRadiusSize; + + touches.Clear(); + touches.AddRange(Input.touches); + + if (Input.GetMouseButton(0)) + { + touches.Add(new Touch { position = Input.mousePosition }); + } + + foreach (Touch touch in touches) + { + Vector2 diff = new Vector2(); + RectTransformUtility.ScreenPointToLocalPointInRectangle(uiHookup.MoveTouch, touch.position, null, out diff); + if (diff.magnitude < radius) + { + wantMove = new Vector3(diff.x, 0, diff.y) / (radius * MoveTouchFullZone); + if (wantMove.magnitude > 1) wantMove.Normalize(); + } + } + } + + + + if (wantMove.sqrMagnitude > 0) + { + wantMove *= Speed * Time.deltaTime; + wantMove.y = -0.1f * Time.deltaTime; + CollisionFlags flags = charControl.Move(wantMove); + } + } + } +} diff --git a/Assets/Player/Player.cs.meta b/Assets/Player/Player.cs.meta new file mode 100644 index 0000000..1489e8e --- /dev/null +++ b/Assets/Player/Player.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 45fac14d91eb200479e945e56930d545 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Player/Player.cs b/Assets/Player/Player.cs new file mode 100644 index 0000000..31941eb --- /dev/null +++ b/Assets/Player/Player.cs @@ -0,0 +1,121 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +public class Player : MonoBehaviour +{ + private Item netItem; + public bool ForceLocal; + + public bool IsLocal + { + get + { + return ForceLocal || (netItem != null && netItem.IsLocal); + } + } + + private UIHookup uiHookup; + + private CharacterController charControl; + // Start is called before the first frame update + void Awake() + { + netItem = GetComponentInChildren(); + castLight = transform.Find("CastLight").gameObject; + + uiHookup = FindObjectOfType(); + + if (ForceLocal) + { + StartLocal(); + } + } + + private GameObject castLight; + private float bottomOffset; + void StartLocal() + { + castLight.SetActive(true); + charControl = GetComponentInChildren(); + charControl.enabled = true; + + bottomOffset = -charControl.center.y + charControl.height * 0.5f; + } + + public float Speed; + + private List touches = new List(); + + public float MoveTouchFullZone = 0.7f; + public float MoveTouchRadiusSize = 1.45f; + + // Update is called once per frame + void Update() + { + if (IsLocal && charControl != null) + { + RaycastHit hit; + if (Physics.Raycast(new Ray(transform.position, Vector3.down), out hit, 10f)) + { + Vector3 pos = transform.position; + pos.y = hit.point.y + (bottomOffset + 0.01f); + transform.position = pos; + } + + Vector3 wantMove = new Vector3(); + + if (Input.GetKey(KeyCode.UpArrow)) + { + wantMove.z += 1; + } + if (Input.GetKey(KeyCode.DownArrow)) + { + wantMove.z -= 1; + } + if (Input.GetKey(KeyCode.RightArrow)) + { + wantMove.x += 1; + } + if (Input.GetKey(KeyCode.LeftArrow)) + { + wantMove.x -= 1; + } + + wantMove.Normalize(); + + if (uiHookup != null && uiHookup.MoveTouch != null && uiHookup.MainCanvas != null) + { + float radius = uiHookup.MoveTouch.rect.width * 0.5f * MoveTouchRadiusSize; + + touches.Clear(); + touches.AddRange(Input.touches); + + if (Input.GetMouseButton(0)) + { + touches.Add(new Touch { position = Input.mousePosition }); + } + + foreach (Touch touch in touches) + { + Vector2 diff = new Vector2(); + RectTransformUtility.ScreenPointToLocalPointInRectangle(uiHookup.MoveTouch, touch.position, null, out diff); + if (diff.magnitude < radius) + { + wantMove = new Vector3(diff.x, 0, diff.y) / (radius * MoveTouchFullZone); + if (wantMove.magnitude > 1) wantMove.Normalize(); + } + } + } + + + + if (wantMove.sqrMagnitude > 0) + { + wantMove *= Speed * Time.deltaTime; + wantMove.y = -0.1f * Time.deltaTime; + CollisionFlags flags = charControl.Move(wantMove); + } + } + } +} diff --git a/Assets/Player/Player.cs.meta b/Assets/Player/Player.cs.meta new file mode 100644 index 0000000..1489e8e --- /dev/null +++ b/Assets/Player/Player.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 45fac14d91eb200479e945e56930d545 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Player/Player.prefab b/Assets/Player/Player.prefab index 891b73b..916810b 100644 --- a/Assets/Player/Player.prefab +++ b/Assets/Player/Player.prefab @@ -78,6 +78,8 @@ m_EditorClassIdentifier: ForceLocal: 0 Speed: 8 + MoveTouchFullZone: 0.7 + MoveTouchRadiusSize: 1.45 --- !u!143 &446445004819590403 CharacterController: m_ObjectHideFlags: 0 diff --git a/Assets/Player/Player.cs b/Assets/Player/Player.cs new file mode 100644 index 0000000..31941eb --- /dev/null +++ b/Assets/Player/Player.cs @@ -0,0 +1,121 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +public class Player : MonoBehaviour +{ + private Item netItem; + public bool ForceLocal; + + public bool IsLocal + { + get + { + return ForceLocal || (netItem != null && netItem.IsLocal); + } + } + + private UIHookup uiHookup; + + private CharacterController charControl; + // Start is called before the first frame update + void Awake() + { + netItem = GetComponentInChildren(); + castLight = transform.Find("CastLight").gameObject; + + uiHookup = FindObjectOfType(); + + if (ForceLocal) + { + StartLocal(); + } + } + + private GameObject castLight; + private float bottomOffset; + void StartLocal() + { + castLight.SetActive(true); + charControl = GetComponentInChildren(); + charControl.enabled = true; + + bottomOffset = -charControl.center.y + charControl.height * 0.5f; + } + + public float Speed; + + private List touches = new List(); + + public float MoveTouchFullZone = 0.7f; + public float MoveTouchRadiusSize = 1.45f; + + // Update is called once per frame + void Update() + { + if (IsLocal && charControl != null) + { + RaycastHit hit; + if (Physics.Raycast(new Ray(transform.position, Vector3.down), out hit, 10f)) + { + Vector3 pos = transform.position; + pos.y = hit.point.y + (bottomOffset + 0.01f); + transform.position = pos; + } + + Vector3 wantMove = new Vector3(); + + if (Input.GetKey(KeyCode.UpArrow)) + { + wantMove.z += 1; + } + if (Input.GetKey(KeyCode.DownArrow)) + { + wantMove.z -= 1; + } + if (Input.GetKey(KeyCode.RightArrow)) + { + wantMove.x += 1; + } + if (Input.GetKey(KeyCode.LeftArrow)) + { + wantMove.x -= 1; + } + + wantMove.Normalize(); + + if (uiHookup != null && uiHookup.MoveTouch != null && uiHookup.MainCanvas != null) + { + float radius = uiHookup.MoveTouch.rect.width * 0.5f * MoveTouchRadiusSize; + + touches.Clear(); + touches.AddRange(Input.touches); + + if (Input.GetMouseButton(0)) + { + touches.Add(new Touch { position = Input.mousePosition }); + } + + foreach (Touch touch in touches) + { + Vector2 diff = new Vector2(); + RectTransformUtility.ScreenPointToLocalPointInRectangle(uiHookup.MoveTouch, touch.position, null, out diff); + if (diff.magnitude < radius) + { + wantMove = new Vector3(diff.x, 0, diff.y) / (radius * MoveTouchFullZone); + if (wantMove.magnitude > 1) wantMove.Normalize(); + } + } + } + + + + if (wantMove.sqrMagnitude > 0) + { + wantMove *= Speed * Time.deltaTime; + wantMove.y = -0.1f * Time.deltaTime; + CollisionFlags flags = charControl.Move(wantMove); + } + } + } +} diff --git a/Assets/Player/Player.cs.meta b/Assets/Player/Player.cs.meta new file mode 100644 index 0000000..1489e8e --- /dev/null +++ b/Assets/Player/Player.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 45fac14d91eb200479e945e56930d545 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Player/Player.prefab b/Assets/Player/Player.prefab index 891b73b..916810b 100644 --- a/Assets/Player/Player.prefab +++ b/Assets/Player/Player.prefab @@ -78,6 +78,8 @@ m_EditorClassIdentifier: ForceLocal: 0 Speed: 8 + MoveTouchFullZone: 0.7 + MoveTouchRadiusSize: 1.45 --- !u!143 &446445004819590403 CharacterController: m_ObjectHideFlags: 0 diff --git a/Assets/Player/UIHookup.cs b/Assets/Player/UIHookup.cs new file mode 100644 index 0000000..93899a9 --- /dev/null +++ b/Assets/Player/UIHookup.cs @@ -0,0 +1,20 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +public class UIHookup : MonoBehaviour +{ + public RectTransform MoveTouch; + public Canvas MainCanvas; + // Start is called before the first frame update + void Start() + { + + } + + // Update is called once per frame + void Update() + { + + } +} diff --git a/Assets/Player/Player.cs b/Assets/Player/Player.cs new file mode 100644 index 0000000..31941eb --- /dev/null +++ b/Assets/Player/Player.cs @@ -0,0 +1,121 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +public class Player : MonoBehaviour +{ + private Item netItem; + public bool ForceLocal; + + public bool IsLocal + { + get + { + return ForceLocal || (netItem != null && netItem.IsLocal); + } + } + + private UIHookup uiHookup; + + private CharacterController charControl; + // Start is called before the first frame update + void Awake() + { + netItem = GetComponentInChildren(); + castLight = transform.Find("CastLight").gameObject; + + uiHookup = FindObjectOfType(); + + if (ForceLocal) + { + StartLocal(); + } + } + + private GameObject castLight; + private float bottomOffset; + void StartLocal() + { + castLight.SetActive(true); + charControl = GetComponentInChildren(); + charControl.enabled = true; + + bottomOffset = -charControl.center.y + charControl.height * 0.5f; + } + + public float Speed; + + private List touches = new List(); + + public float MoveTouchFullZone = 0.7f; + public float MoveTouchRadiusSize = 1.45f; + + // Update is called once per frame + void Update() + { + if (IsLocal && charControl != null) + { + RaycastHit hit; + if (Physics.Raycast(new Ray(transform.position, Vector3.down), out hit, 10f)) + { + Vector3 pos = transform.position; + pos.y = hit.point.y + (bottomOffset + 0.01f); + transform.position = pos; + } + + Vector3 wantMove = new Vector3(); + + if (Input.GetKey(KeyCode.UpArrow)) + { + wantMove.z += 1; + } + if (Input.GetKey(KeyCode.DownArrow)) + { + wantMove.z -= 1; + } + if (Input.GetKey(KeyCode.RightArrow)) + { + wantMove.x += 1; + } + if (Input.GetKey(KeyCode.LeftArrow)) + { + wantMove.x -= 1; + } + + wantMove.Normalize(); + + if (uiHookup != null && uiHookup.MoveTouch != null && uiHookup.MainCanvas != null) + { + float radius = uiHookup.MoveTouch.rect.width * 0.5f * MoveTouchRadiusSize; + + touches.Clear(); + touches.AddRange(Input.touches); + + if (Input.GetMouseButton(0)) + { + touches.Add(new Touch { position = Input.mousePosition }); + } + + foreach (Touch touch in touches) + { + Vector2 diff = new Vector2(); + RectTransformUtility.ScreenPointToLocalPointInRectangle(uiHookup.MoveTouch, touch.position, null, out diff); + if (diff.magnitude < radius) + { + wantMove = new Vector3(diff.x, 0, diff.y) / (radius * MoveTouchFullZone); + if (wantMove.magnitude > 1) wantMove.Normalize(); + } + } + } + + + + if (wantMove.sqrMagnitude > 0) + { + wantMove *= Speed * Time.deltaTime; + wantMove.y = -0.1f * Time.deltaTime; + CollisionFlags flags = charControl.Move(wantMove); + } + } + } +} diff --git a/Assets/Player/Player.cs.meta b/Assets/Player/Player.cs.meta new file mode 100644 index 0000000..1489e8e --- /dev/null +++ b/Assets/Player/Player.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 45fac14d91eb200479e945e56930d545 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Player/Player.prefab b/Assets/Player/Player.prefab index 891b73b..916810b 100644 --- a/Assets/Player/Player.prefab +++ b/Assets/Player/Player.prefab @@ -78,6 +78,8 @@ m_EditorClassIdentifier: ForceLocal: 0 Speed: 8 + MoveTouchFullZone: 0.7 + MoveTouchRadiusSize: 1.45 --- !u!143 &446445004819590403 CharacterController: m_ObjectHideFlags: 0 diff --git a/Assets/Player/UIHookup.cs b/Assets/Player/UIHookup.cs new file mode 100644 index 0000000..93899a9 --- /dev/null +++ b/Assets/Player/UIHookup.cs @@ -0,0 +1,20 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +public class UIHookup : MonoBehaviour +{ + public RectTransform MoveTouch; + public Canvas MainCanvas; + // Start is called before the first frame update + void Start() + { + + } + + // Update is called once per frame + void Update() + { + + } +} diff --git a/Assets/Player/UIHookup.cs.meta b/Assets/Player/UIHookup.cs.meta new file mode 100644 index 0000000..84fc3f1 --- /dev/null +++ b/Assets/Player/UIHookup.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: b8368d89d0c587f45aefff388426bd1f +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Player/Player.cs b/Assets/Player/Player.cs new file mode 100644 index 0000000..31941eb --- /dev/null +++ b/Assets/Player/Player.cs @@ -0,0 +1,121 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +public class Player : MonoBehaviour +{ + private Item netItem; + public bool ForceLocal; + + public bool IsLocal + { + get + { + return ForceLocal || (netItem != null && netItem.IsLocal); + } + } + + private UIHookup uiHookup; + + private CharacterController charControl; + // Start is called before the first frame update + void Awake() + { + netItem = GetComponentInChildren(); + castLight = transform.Find("CastLight").gameObject; + + uiHookup = FindObjectOfType(); + + if (ForceLocal) + { + StartLocal(); + } + } + + private GameObject castLight; + private float bottomOffset; + void StartLocal() + { + castLight.SetActive(true); + charControl = GetComponentInChildren(); + charControl.enabled = true; + + bottomOffset = -charControl.center.y + charControl.height * 0.5f; + } + + public float Speed; + + private List touches = new List(); + + public float MoveTouchFullZone = 0.7f; + public float MoveTouchRadiusSize = 1.45f; + + // Update is called once per frame + void Update() + { + if (IsLocal && charControl != null) + { + RaycastHit hit; + if (Physics.Raycast(new Ray(transform.position, Vector3.down), out hit, 10f)) + { + Vector3 pos = transform.position; + pos.y = hit.point.y + (bottomOffset + 0.01f); + transform.position = pos; + } + + Vector3 wantMove = new Vector3(); + + if (Input.GetKey(KeyCode.UpArrow)) + { + wantMove.z += 1; + } + if (Input.GetKey(KeyCode.DownArrow)) + { + wantMove.z -= 1; + } + if (Input.GetKey(KeyCode.RightArrow)) + { + wantMove.x += 1; + } + if (Input.GetKey(KeyCode.LeftArrow)) + { + wantMove.x -= 1; + } + + wantMove.Normalize(); + + if (uiHookup != null && uiHookup.MoveTouch != null && uiHookup.MainCanvas != null) + { + float radius = uiHookup.MoveTouch.rect.width * 0.5f * MoveTouchRadiusSize; + + touches.Clear(); + touches.AddRange(Input.touches); + + if (Input.GetMouseButton(0)) + { + touches.Add(new Touch { position = Input.mousePosition }); + } + + foreach (Touch touch in touches) + { + Vector2 diff = new Vector2(); + RectTransformUtility.ScreenPointToLocalPointInRectangle(uiHookup.MoveTouch, touch.position, null, out diff); + if (diff.magnitude < radius) + { + wantMove = new Vector3(diff.x, 0, diff.y) / (radius * MoveTouchFullZone); + if (wantMove.magnitude > 1) wantMove.Normalize(); + } + } + } + + + + if (wantMove.sqrMagnitude > 0) + { + wantMove *= Speed * Time.deltaTime; + wantMove.y = -0.1f * Time.deltaTime; + CollisionFlags flags = charControl.Move(wantMove); + } + } + } +} diff --git a/Assets/Player/Player.cs.meta b/Assets/Player/Player.cs.meta new file mode 100644 index 0000000..1489e8e --- /dev/null +++ b/Assets/Player/Player.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 45fac14d91eb200479e945e56930d545 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Player/Player.prefab b/Assets/Player/Player.prefab index 891b73b..916810b 100644 --- a/Assets/Player/Player.prefab +++ b/Assets/Player/Player.prefab @@ -78,6 +78,8 @@ m_EditorClassIdentifier: ForceLocal: 0 Speed: 8 + MoveTouchFullZone: 0.7 + MoveTouchRadiusSize: 1.45 --- !u!143 &446445004819590403 CharacterController: m_ObjectHideFlags: 0 diff --git a/Assets/Player/UIHookup.cs b/Assets/Player/UIHookup.cs new file mode 100644 index 0000000..93899a9 --- /dev/null +++ b/Assets/Player/UIHookup.cs @@ -0,0 +1,20 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +public class UIHookup : MonoBehaviour +{ + public RectTransform MoveTouch; + public Canvas MainCanvas; + // Start is called before the first frame update + void Start() + { + + } + + // Update is called once per frame + void Update() + { + + } +} diff --git a/Assets/Player/UIHookup.cs.meta b/Assets/Player/UIHookup.cs.meta new file mode 100644 index 0000000..84fc3f1 --- /dev/null +++ b/Assets/Player/UIHookup.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: b8368d89d0c587f45aefff388426bd1f +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scenes/Lobby.unity b/Assets/Scenes/Lobby.unity index 4bcb9b4..4f4bfe0 100644 --- a/Assets/Scenes/Lobby.unity +++ b/Assets/Scenes/Lobby.unity @@ -855,6 +855,72 @@ m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 731784984} m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &755741635 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 755741638} + - component: {fileID: 755741637} + - component: {fileID: 755741636} + m_Layer: 0 + m_Name: EventSystem + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &755741636 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 755741635} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4f231c4fb786f3946a6b90b886c48677, type: 3} + m_Name: + m_EditorClassIdentifier: + m_HorizontalAxis: Horizontal + m_VerticalAxis: Vertical + m_SubmitButton: Submit + m_CancelButton: Cancel + m_InputActionsPerSecond: 10 + m_RepeatDelay: 0.5 + m_ForceModuleActive: 0 +--- !u!114 &755741637 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 755741635} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 76c392e42b5098c458856cdf6ecaaaa1, type: 3} + m_Name: + m_EditorClassIdentifier: + m_FirstSelected: {fileID: 0} + m_sendNavigationEvents: 1 + m_DragThreshold: 10 +--- !u!4 &755741638 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 755741635} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 9 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &797860887 GameObject: m_ObjectHideFlags: 0 @@ -1308,6 +1374,79 @@ m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1698856408} m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &1731919962 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1731919963} + - component: {fileID: 1731919965} + - component: {fileID: 1731919964} + m_Layer: 5 + m_Name: Image + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1731919963 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1731919962} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1.7835172, y: 1.7835172, z: 1.7835172} + m_Children: [] + m_Father: {fileID: 2078452658} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 100, y: 99} + m_SizeDelta: {x: 100, y: 100} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1731919964 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1731919962} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: c15f112c6aa43f34782f5270b6ce8466, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &1731919965 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1731919962} + m_CullTransparentMesh: 0 --- !u!1 &1741634442 GameObject: m_ObjectHideFlags: 0 @@ -1355,6 +1494,66 @@ m_Father: {fileID: 0} m_RootOrder: 7 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &1917456049 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1917456052} + - component: {fileID: 1917456051} + - component: {fileID: 1917456050} + m_Layer: 0 + m_Name: UIHookup + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &1917456050 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1917456049} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: b8368d89d0c587f45aefff388426bd1f, type: 3} + m_Name: + m_EditorClassIdentifier: + MoveTouch: {fileID: 1731919963} + MainCanvas: {fileID: 2078452657} +--- !u!114 &1917456051 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1917456049} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: b8368d89d0c587f45aefff388426bd1f, type: 3} + m_Name: + m_EditorClassIdentifier: + MoveTouch: {fileID: 0} + MainCanvas: {fileID: 0} +--- !u!4 &1917456052 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1917456049} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 618.394, y: 441.65213, z: -927.14417} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 10 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &2071196361 GameObject: m_ObjectHideFlags: 0 @@ -1448,3 +1647,102 @@ m_Father: {fileID: 0} m_RootOrder: 2 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &2078452654 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2078452658} + - component: {fileID: 2078452657} + - component: {fileID: 2078452656} + - component: {fileID: 2078452655} + m_Layer: 5 + m_Name: Canvas + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &2078452655 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2078452654} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: dc42784cf147c0c48a680349fa168899, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreReversedGraphics: 1 + m_BlockingObjects: 0 + m_BlockingMask: + serializedVersion: 2 + m_Bits: 4294967295 +--- !u!114 &2078452656 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2078452654} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0cd44c1031e13a943bb63640046fad76, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UiScaleMode: 1 + m_ReferencePixelsPerUnit: 100 + m_ScaleFactor: 1 + m_ReferenceResolution: {x: 900, y: 600} + m_ScreenMatchMode: 1 + m_MatchWidthOrHeight: 0.525 + m_PhysicalUnit: 3 + m_FallbackScreenDPI: 96 + m_DefaultSpriteDPI: 96 + m_DynamicPixelsPerUnit: 1 +--- !u!223 &2078452657 +Canvas: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2078452654} + m_Enabled: 1 + serializedVersion: 3 + m_RenderMode: 0 + m_Camera: {fileID: 0} + m_PlaneDistance: 100 + m_PixelPerfect: 0 + m_ReceivesEvents: 1 + m_OverrideSorting: 0 + m_OverridePixelPerfect: 0 + m_SortingBucketNormalizedSize: 0 + m_AdditionalShaderChannelsFlag: 0 + m_SortingLayerID: 0 + m_SortingOrder: 0 + m_TargetDisplay: 0 +--- !u!224 &2078452658 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2078452654} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 1731919963} + m_Father: {fileID: 0} + m_RootOrder: 8 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0, y: 0} diff --git a/Assets/Player/Player.cs b/Assets/Player/Player.cs new file mode 100644 index 0000000..31941eb --- /dev/null +++ b/Assets/Player/Player.cs @@ -0,0 +1,121 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +public class Player : MonoBehaviour +{ + private Item netItem; + public bool ForceLocal; + + public bool IsLocal + { + get + { + return ForceLocal || (netItem != null && netItem.IsLocal); + } + } + + private UIHookup uiHookup; + + private CharacterController charControl; + // Start is called before the first frame update + void Awake() + { + netItem = GetComponentInChildren(); + castLight = transform.Find("CastLight").gameObject; + + uiHookup = FindObjectOfType(); + + if (ForceLocal) + { + StartLocal(); + } + } + + private GameObject castLight; + private float bottomOffset; + void StartLocal() + { + castLight.SetActive(true); + charControl = GetComponentInChildren(); + charControl.enabled = true; + + bottomOffset = -charControl.center.y + charControl.height * 0.5f; + } + + public float Speed; + + private List touches = new List(); + + public float MoveTouchFullZone = 0.7f; + public float MoveTouchRadiusSize = 1.45f; + + // Update is called once per frame + void Update() + { + if (IsLocal && charControl != null) + { + RaycastHit hit; + if (Physics.Raycast(new Ray(transform.position, Vector3.down), out hit, 10f)) + { + Vector3 pos = transform.position; + pos.y = hit.point.y + (bottomOffset + 0.01f); + transform.position = pos; + } + + Vector3 wantMove = new Vector3(); + + if (Input.GetKey(KeyCode.UpArrow)) + { + wantMove.z += 1; + } + if (Input.GetKey(KeyCode.DownArrow)) + { + wantMove.z -= 1; + } + if (Input.GetKey(KeyCode.RightArrow)) + { + wantMove.x += 1; + } + if (Input.GetKey(KeyCode.LeftArrow)) + { + wantMove.x -= 1; + } + + wantMove.Normalize(); + + if (uiHookup != null && uiHookup.MoveTouch != null && uiHookup.MainCanvas != null) + { + float radius = uiHookup.MoveTouch.rect.width * 0.5f * MoveTouchRadiusSize; + + touches.Clear(); + touches.AddRange(Input.touches); + + if (Input.GetMouseButton(0)) + { + touches.Add(new Touch { position = Input.mousePosition }); + } + + foreach (Touch touch in touches) + { + Vector2 diff = new Vector2(); + RectTransformUtility.ScreenPointToLocalPointInRectangle(uiHookup.MoveTouch, touch.position, null, out diff); + if (diff.magnitude < radius) + { + wantMove = new Vector3(diff.x, 0, diff.y) / (radius * MoveTouchFullZone); + if (wantMove.magnitude > 1) wantMove.Normalize(); + } + } + } + + + + if (wantMove.sqrMagnitude > 0) + { + wantMove *= Speed * Time.deltaTime; + wantMove.y = -0.1f * Time.deltaTime; + CollisionFlags flags = charControl.Move(wantMove); + } + } + } +} diff --git a/Assets/Player/Player.cs.meta b/Assets/Player/Player.cs.meta new file mode 100644 index 0000000..1489e8e --- /dev/null +++ b/Assets/Player/Player.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 45fac14d91eb200479e945e56930d545 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Player/Player.prefab b/Assets/Player/Player.prefab index 891b73b..916810b 100644 --- a/Assets/Player/Player.prefab +++ b/Assets/Player/Player.prefab @@ -78,6 +78,8 @@ m_EditorClassIdentifier: ForceLocal: 0 Speed: 8 + MoveTouchFullZone: 0.7 + MoveTouchRadiusSize: 1.45 --- !u!143 &446445004819590403 CharacterController: m_ObjectHideFlags: 0 diff --git a/Assets/Player/UIHookup.cs b/Assets/Player/UIHookup.cs new file mode 100644 index 0000000..93899a9 --- /dev/null +++ b/Assets/Player/UIHookup.cs @@ -0,0 +1,20 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +public class UIHookup : MonoBehaviour +{ + public RectTransform MoveTouch; + public Canvas MainCanvas; + // Start is called before the first frame update + void Start() + { + + } + + // Update is called once per frame + void Update() + { + + } +} diff --git a/Assets/Player/UIHookup.cs.meta b/Assets/Player/UIHookup.cs.meta new file mode 100644 index 0000000..84fc3f1 --- /dev/null +++ b/Assets/Player/UIHookup.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: b8368d89d0c587f45aefff388426bd1f +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scenes/Lobby.unity b/Assets/Scenes/Lobby.unity index 4bcb9b4..4f4bfe0 100644 --- a/Assets/Scenes/Lobby.unity +++ b/Assets/Scenes/Lobby.unity @@ -855,6 +855,72 @@ m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 731784984} m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &755741635 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 755741638} + - component: {fileID: 755741637} + - component: {fileID: 755741636} + m_Layer: 0 + m_Name: EventSystem + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &755741636 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 755741635} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4f231c4fb786f3946a6b90b886c48677, type: 3} + m_Name: + m_EditorClassIdentifier: + m_HorizontalAxis: Horizontal + m_VerticalAxis: Vertical + m_SubmitButton: Submit + m_CancelButton: Cancel + m_InputActionsPerSecond: 10 + m_RepeatDelay: 0.5 + m_ForceModuleActive: 0 +--- !u!114 &755741637 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 755741635} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 76c392e42b5098c458856cdf6ecaaaa1, type: 3} + m_Name: + m_EditorClassIdentifier: + m_FirstSelected: {fileID: 0} + m_sendNavigationEvents: 1 + m_DragThreshold: 10 +--- !u!4 &755741638 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 755741635} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 9 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &797860887 GameObject: m_ObjectHideFlags: 0 @@ -1308,6 +1374,79 @@ m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1698856408} m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &1731919962 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1731919963} + - component: {fileID: 1731919965} + - component: {fileID: 1731919964} + m_Layer: 5 + m_Name: Image + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1731919963 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1731919962} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1.7835172, y: 1.7835172, z: 1.7835172} + m_Children: [] + m_Father: {fileID: 2078452658} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 100, y: 99} + m_SizeDelta: {x: 100, y: 100} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1731919964 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1731919962} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: c15f112c6aa43f34782f5270b6ce8466, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &1731919965 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1731919962} + m_CullTransparentMesh: 0 --- !u!1 &1741634442 GameObject: m_ObjectHideFlags: 0 @@ -1355,6 +1494,66 @@ m_Father: {fileID: 0} m_RootOrder: 7 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &1917456049 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1917456052} + - component: {fileID: 1917456051} + - component: {fileID: 1917456050} + m_Layer: 0 + m_Name: UIHookup + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &1917456050 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1917456049} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: b8368d89d0c587f45aefff388426bd1f, type: 3} + m_Name: + m_EditorClassIdentifier: + MoveTouch: {fileID: 1731919963} + MainCanvas: {fileID: 2078452657} +--- !u!114 &1917456051 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1917456049} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: b8368d89d0c587f45aefff388426bd1f, type: 3} + m_Name: + m_EditorClassIdentifier: + MoveTouch: {fileID: 0} + MainCanvas: {fileID: 0} +--- !u!4 &1917456052 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1917456049} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 618.394, y: 441.65213, z: -927.14417} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 10 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &2071196361 GameObject: m_ObjectHideFlags: 0 @@ -1448,3 +1647,102 @@ m_Father: {fileID: 0} m_RootOrder: 2 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &2078452654 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2078452658} + - component: {fileID: 2078452657} + - component: {fileID: 2078452656} + - component: {fileID: 2078452655} + m_Layer: 5 + m_Name: Canvas + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &2078452655 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2078452654} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: dc42784cf147c0c48a680349fa168899, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreReversedGraphics: 1 + m_BlockingObjects: 0 + m_BlockingMask: + serializedVersion: 2 + m_Bits: 4294967295 +--- !u!114 &2078452656 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2078452654} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0cd44c1031e13a943bb63640046fad76, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UiScaleMode: 1 + m_ReferencePixelsPerUnit: 100 + m_ScaleFactor: 1 + m_ReferenceResolution: {x: 900, y: 600} + m_ScreenMatchMode: 1 + m_MatchWidthOrHeight: 0.525 + m_PhysicalUnit: 3 + m_FallbackScreenDPI: 96 + m_DefaultSpriteDPI: 96 + m_DynamicPixelsPerUnit: 1 +--- !u!223 &2078452657 +Canvas: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2078452654} + m_Enabled: 1 + serializedVersion: 3 + m_RenderMode: 0 + m_Camera: {fileID: 0} + m_PlaneDistance: 100 + m_PixelPerfect: 0 + m_ReceivesEvents: 1 + m_OverrideSorting: 0 + m_OverridePixelPerfect: 0 + m_SortingBucketNormalizedSize: 0 + m_AdditionalShaderChannelsFlag: 0 + m_SortingLayerID: 0 + m_SortingOrder: 0 + m_TargetDisplay: 0 +--- !u!224 &2078452658 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2078452654} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 1731919963} + m_Father: {fileID: 0} + m_RootOrder: 8 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0, y: 0} diff --git a/Assets/Scripts/NetHost.cs b/Assets/Scripts/NetHost.cs index 66eb5fd..7709698 100644 --- a/Assets/Scripts/NetHost.cs +++ b/Assets/Scripts/NetHost.cs @@ -38,8 +38,8 @@ socket = new WebSocket(new System.Uri("wss://blackout.mhack.io/websocket")); - socket.PingFrequency = 15000; - socket.StartPingThread = true; + //socket.PingFrequency = 15000; + //socket.StartPingThread = true; socket.OnOpen += Opened; socket.OnClosed += Closed; diff --git a/Assets/Player/Player.cs b/Assets/Player/Player.cs new file mode 100644 index 0000000..31941eb --- /dev/null +++ b/Assets/Player/Player.cs @@ -0,0 +1,121 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +public class Player : MonoBehaviour +{ + private Item netItem; + public bool ForceLocal; + + public bool IsLocal + { + get + { + return ForceLocal || (netItem != null && netItem.IsLocal); + } + } + + private UIHookup uiHookup; + + private CharacterController charControl; + // Start is called before the first frame update + void Awake() + { + netItem = GetComponentInChildren(); + castLight = transform.Find("CastLight").gameObject; + + uiHookup = FindObjectOfType(); + + if (ForceLocal) + { + StartLocal(); + } + } + + private GameObject castLight; + private float bottomOffset; + void StartLocal() + { + castLight.SetActive(true); + charControl = GetComponentInChildren(); + charControl.enabled = true; + + bottomOffset = -charControl.center.y + charControl.height * 0.5f; + } + + public float Speed; + + private List touches = new List(); + + public float MoveTouchFullZone = 0.7f; + public float MoveTouchRadiusSize = 1.45f; + + // Update is called once per frame + void Update() + { + if (IsLocal && charControl != null) + { + RaycastHit hit; + if (Physics.Raycast(new Ray(transform.position, Vector3.down), out hit, 10f)) + { + Vector3 pos = transform.position; + pos.y = hit.point.y + (bottomOffset + 0.01f); + transform.position = pos; + } + + Vector3 wantMove = new Vector3(); + + if (Input.GetKey(KeyCode.UpArrow)) + { + wantMove.z += 1; + } + if (Input.GetKey(KeyCode.DownArrow)) + { + wantMove.z -= 1; + } + if (Input.GetKey(KeyCode.RightArrow)) + { + wantMove.x += 1; + } + if (Input.GetKey(KeyCode.LeftArrow)) + { + wantMove.x -= 1; + } + + wantMove.Normalize(); + + if (uiHookup != null && uiHookup.MoveTouch != null && uiHookup.MainCanvas != null) + { + float radius = uiHookup.MoveTouch.rect.width * 0.5f * MoveTouchRadiusSize; + + touches.Clear(); + touches.AddRange(Input.touches); + + if (Input.GetMouseButton(0)) + { + touches.Add(new Touch { position = Input.mousePosition }); + } + + foreach (Touch touch in touches) + { + Vector2 diff = new Vector2(); + RectTransformUtility.ScreenPointToLocalPointInRectangle(uiHookup.MoveTouch, touch.position, null, out diff); + if (diff.magnitude < radius) + { + wantMove = new Vector3(diff.x, 0, diff.y) / (radius * MoveTouchFullZone); + if (wantMove.magnitude > 1) wantMove.Normalize(); + } + } + } + + + + if (wantMove.sqrMagnitude > 0) + { + wantMove *= Speed * Time.deltaTime; + wantMove.y = -0.1f * Time.deltaTime; + CollisionFlags flags = charControl.Move(wantMove); + } + } + } +} diff --git a/Assets/Player/Player.cs.meta b/Assets/Player/Player.cs.meta new file mode 100644 index 0000000..1489e8e --- /dev/null +++ b/Assets/Player/Player.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 45fac14d91eb200479e945e56930d545 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Player/Player.prefab b/Assets/Player/Player.prefab index 891b73b..916810b 100644 --- a/Assets/Player/Player.prefab +++ b/Assets/Player/Player.prefab @@ -78,6 +78,8 @@ m_EditorClassIdentifier: ForceLocal: 0 Speed: 8 + MoveTouchFullZone: 0.7 + MoveTouchRadiusSize: 1.45 --- !u!143 &446445004819590403 CharacterController: m_ObjectHideFlags: 0 diff --git a/Assets/Player/UIHookup.cs b/Assets/Player/UIHookup.cs new file mode 100644 index 0000000..93899a9 --- /dev/null +++ b/Assets/Player/UIHookup.cs @@ -0,0 +1,20 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +public class UIHookup : MonoBehaviour +{ + public RectTransform MoveTouch; + public Canvas MainCanvas; + // Start is called before the first frame update + void Start() + { + + } + + // Update is called once per frame + void Update() + { + + } +} diff --git a/Assets/Player/UIHookup.cs.meta b/Assets/Player/UIHookup.cs.meta new file mode 100644 index 0000000..84fc3f1 --- /dev/null +++ b/Assets/Player/UIHookup.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: b8368d89d0c587f45aefff388426bd1f +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scenes/Lobby.unity b/Assets/Scenes/Lobby.unity index 4bcb9b4..4f4bfe0 100644 --- a/Assets/Scenes/Lobby.unity +++ b/Assets/Scenes/Lobby.unity @@ -855,6 +855,72 @@ m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 731784984} m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &755741635 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 755741638} + - component: {fileID: 755741637} + - component: {fileID: 755741636} + m_Layer: 0 + m_Name: EventSystem + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &755741636 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 755741635} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4f231c4fb786f3946a6b90b886c48677, type: 3} + m_Name: + m_EditorClassIdentifier: + m_HorizontalAxis: Horizontal + m_VerticalAxis: Vertical + m_SubmitButton: Submit + m_CancelButton: Cancel + m_InputActionsPerSecond: 10 + m_RepeatDelay: 0.5 + m_ForceModuleActive: 0 +--- !u!114 &755741637 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 755741635} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 76c392e42b5098c458856cdf6ecaaaa1, type: 3} + m_Name: + m_EditorClassIdentifier: + m_FirstSelected: {fileID: 0} + m_sendNavigationEvents: 1 + m_DragThreshold: 10 +--- !u!4 &755741638 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 755741635} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 9 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &797860887 GameObject: m_ObjectHideFlags: 0 @@ -1308,6 +1374,79 @@ m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1698856408} m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &1731919962 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1731919963} + - component: {fileID: 1731919965} + - component: {fileID: 1731919964} + m_Layer: 5 + m_Name: Image + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1731919963 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1731919962} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1.7835172, y: 1.7835172, z: 1.7835172} + m_Children: [] + m_Father: {fileID: 2078452658} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 100, y: 99} + m_SizeDelta: {x: 100, y: 100} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1731919964 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1731919962} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: c15f112c6aa43f34782f5270b6ce8466, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &1731919965 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1731919962} + m_CullTransparentMesh: 0 --- !u!1 &1741634442 GameObject: m_ObjectHideFlags: 0 @@ -1355,6 +1494,66 @@ m_Father: {fileID: 0} m_RootOrder: 7 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &1917456049 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1917456052} + - component: {fileID: 1917456051} + - component: {fileID: 1917456050} + m_Layer: 0 + m_Name: UIHookup + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &1917456050 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1917456049} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: b8368d89d0c587f45aefff388426bd1f, type: 3} + m_Name: + m_EditorClassIdentifier: + MoveTouch: {fileID: 1731919963} + MainCanvas: {fileID: 2078452657} +--- !u!114 &1917456051 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1917456049} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: b8368d89d0c587f45aefff388426bd1f, type: 3} + m_Name: + m_EditorClassIdentifier: + MoveTouch: {fileID: 0} + MainCanvas: {fileID: 0} +--- !u!4 &1917456052 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1917456049} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 618.394, y: 441.65213, z: -927.14417} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 10 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &2071196361 GameObject: m_ObjectHideFlags: 0 @@ -1448,3 +1647,102 @@ m_Father: {fileID: 0} m_RootOrder: 2 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &2078452654 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2078452658} + - component: {fileID: 2078452657} + - component: {fileID: 2078452656} + - component: {fileID: 2078452655} + m_Layer: 5 + m_Name: Canvas + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &2078452655 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2078452654} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: dc42784cf147c0c48a680349fa168899, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreReversedGraphics: 1 + m_BlockingObjects: 0 + m_BlockingMask: + serializedVersion: 2 + m_Bits: 4294967295 +--- !u!114 &2078452656 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2078452654} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0cd44c1031e13a943bb63640046fad76, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UiScaleMode: 1 + m_ReferencePixelsPerUnit: 100 + m_ScaleFactor: 1 + m_ReferenceResolution: {x: 900, y: 600} + m_ScreenMatchMode: 1 + m_MatchWidthOrHeight: 0.525 + m_PhysicalUnit: 3 + m_FallbackScreenDPI: 96 + m_DefaultSpriteDPI: 96 + m_DynamicPixelsPerUnit: 1 +--- !u!223 &2078452657 +Canvas: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2078452654} + m_Enabled: 1 + serializedVersion: 3 + m_RenderMode: 0 + m_Camera: {fileID: 0} + m_PlaneDistance: 100 + m_PixelPerfect: 0 + m_ReceivesEvents: 1 + m_OverrideSorting: 0 + m_OverridePixelPerfect: 0 + m_SortingBucketNormalizedSize: 0 + m_AdditionalShaderChannelsFlag: 0 + m_SortingLayerID: 0 + m_SortingOrder: 0 + m_TargetDisplay: 0 +--- !u!224 &2078452658 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2078452654} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 1731919963} + m_Father: {fileID: 0} + m_RootOrder: 8 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0, y: 0} diff --git a/Assets/Scripts/NetHost.cs b/Assets/Scripts/NetHost.cs index 66eb5fd..7709698 100644 --- a/Assets/Scripts/NetHost.cs +++ b/Assets/Scripts/NetHost.cs @@ -38,8 +38,8 @@ socket = new WebSocket(new System.Uri("wss://blackout.mhack.io/websocket")); - socket.PingFrequency = 15000; - socket.StartPingThread = true; + //socket.PingFrequency = 15000; + //socket.StartPingThread = true; socket.OnOpen += Opened; socket.OnClosed += Closed; diff --git a/Assets/UI.meta b/Assets/UI.meta new file mode 100644 index 0000000..6b5b542 --- /dev/null +++ b/Assets/UI.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 1c38ca1a161adc544b807f07a6eda614 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Player/Player.cs b/Assets/Player/Player.cs new file mode 100644 index 0000000..31941eb --- /dev/null +++ b/Assets/Player/Player.cs @@ -0,0 +1,121 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +public class Player : MonoBehaviour +{ + private Item netItem; + public bool ForceLocal; + + public bool IsLocal + { + get + { + return ForceLocal || (netItem != null && netItem.IsLocal); + } + } + + private UIHookup uiHookup; + + private CharacterController charControl; + // Start is called before the first frame update + void Awake() + { + netItem = GetComponentInChildren(); + castLight = transform.Find("CastLight").gameObject; + + uiHookup = FindObjectOfType(); + + if (ForceLocal) + { + StartLocal(); + } + } + + private GameObject castLight; + private float bottomOffset; + void StartLocal() + { + castLight.SetActive(true); + charControl = GetComponentInChildren(); + charControl.enabled = true; + + bottomOffset = -charControl.center.y + charControl.height * 0.5f; + } + + public float Speed; + + private List touches = new List(); + + public float MoveTouchFullZone = 0.7f; + public float MoveTouchRadiusSize = 1.45f; + + // Update is called once per frame + void Update() + { + if (IsLocal && charControl != null) + { + RaycastHit hit; + if (Physics.Raycast(new Ray(transform.position, Vector3.down), out hit, 10f)) + { + Vector3 pos = transform.position; + pos.y = hit.point.y + (bottomOffset + 0.01f); + transform.position = pos; + } + + Vector3 wantMove = new Vector3(); + + if (Input.GetKey(KeyCode.UpArrow)) + { + wantMove.z += 1; + } + if (Input.GetKey(KeyCode.DownArrow)) + { + wantMove.z -= 1; + } + if (Input.GetKey(KeyCode.RightArrow)) + { + wantMove.x += 1; + } + if (Input.GetKey(KeyCode.LeftArrow)) + { + wantMove.x -= 1; + } + + wantMove.Normalize(); + + if (uiHookup != null && uiHookup.MoveTouch != null && uiHookup.MainCanvas != null) + { + float radius = uiHookup.MoveTouch.rect.width * 0.5f * MoveTouchRadiusSize; + + touches.Clear(); + touches.AddRange(Input.touches); + + if (Input.GetMouseButton(0)) + { + touches.Add(new Touch { position = Input.mousePosition }); + } + + foreach (Touch touch in touches) + { + Vector2 diff = new Vector2(); + RectTransformUtility.ScreenPointToLocalPointInRectangle(uiHookup.MoveTouch, touch.position, null, out diff); + if (diff.magnitude < radius) + { + wantMove = new Vector3(diff.x, 0, diff.y) / (radius * MoveTouchFullZone); + if (wantMove.magnitude > 1) wantMove.Normalize(); + } + } + } + + + + if (wantMove.sqrMagnitude > 0) + { + wantMove *= Speed * Time.deltaTime; + wantMove.y = -0.1f * Time.deltaTime; + CollisionFlags flags = charControl.Move(wantMove); + } + } + } +} diff --git a/Assets/Player/Player.cs.meta b/Assets/Player/Player.cs.meta new file mode 100644 index 0000000..1489e8e --- /dev/null +++ b/Assets/Player/Player.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 45fac14d91eb200479e945e56930d545 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Player/Player.prefab b/Assets/Player/Player.prefab index 891b73b..916810b 100644 --- a/Assets/Player/Player.prefab +++ b/Assets/Player/Player.prefab @@ -78,6 +78,8 @@ m_EditorClassIdentifier: ForceLocal: 0 Speed: 8 + MoveTouchFullZone: 0.7 + MoveTouchRadiusSize: 1.45 --- !u!143 &446445004819590403 CharacterController: m_ObjectHideFlags: 0 diff --git a/Assets/Player/UIHookup.cs b/Assets/Player/UIHookup.cs new file mode 100644 index 0000000..93899a9 --- /dev/null +++ b/Assets/Player/UIHookup.cs @@ -0,0 +1,20 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +public class UIHookup : MonoBehaviour +{ + public RectTransform MoveTouch; + public Canvas MainCanvas; + // Start is called before the first frame update + void Start() + { + + } + + // Update is called once per frame + void Update() + { + + } +} diff --git a/Assets/Player/UIHookup.cs.meta b/Assets/Player/UIHookup.cs.meta new file mode 100644 index 0000000..84fc3f1 --- /dev/null +++ b/Assets/Player/UIHookup.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: b8368d89d0c587f45aefff388426bd1f +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scenes/Lobby.unity b/Assets/Scenes/Lobby.unity index 4bcb9b4..4f4bfe0 100644 --- a/Assets/Scenes/Lobby.unity +++ b/Assets/Scenes/Lobby.unity @@ -855,6 +855,72 @@ m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 731784984} m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &755741635 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 755741638} + - component: {fileID: 755741637} + - component: {fileID: 755741636} + m_Layer: 0 + m_Name: EventSystem + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &755741636 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 755741635} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4f231c4fb786f3946a6b90b886c48677, type: 3} + m_Name: + m_EditorClassIdentifier: + m_HorizontalAxis: Horizontal + m_VerticalAxis: Vertical + m_SubmitButton: Submit + m_CancelButton: Cancel + m_InputActionsPerSecond: 10 + m_RepeatDelay: 0.5 + m_ForceModuleActive: 0 +--- !u!114 &755741637 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 755741635} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 76c392e42b5098c458856cdf6ecaaaa1, type: 3} + m_Name: + m_EditorClassIdentifier: + m_FirstSelected: {fileID: 0} + m_sendNavigationEvents: 1 + m_DragThreshold: 10 +--- !u!4 &755741638 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 755741635} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 9 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &797860887 GameObject: m_ObjectHideFlags: 0 @@ -1308,6 +1374,79 @@ m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1698856408} m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &1731919962 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1731919963} + - component: {fileID: 1731919965} + - component: {fileID: 1731919964} + m_Layer: 5 + m_Name: Image + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1731919963 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1731919962} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1.7835172, y: 1.7835172, z: 1.7835172} + m_Children: [] + m_Father: {fileID: 2078452658} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 100, y: 99} + m_SizeDelta: {x: 100, y: 100} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1731919964 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1731919962} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: c15f112c6aa43f34782f5270b6ce8466, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &1731919965 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1731919962} + m_CullTransparentMesh: 0 --- !u!1 &1741634442 GameObject: m_ObjectHideFlags: 0 @@ -1355,6 +1494,66 @@ m_Father: {fileID: 0} m_RootOrder: 7 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &1917456049 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1917456052} + - component: {fileID: 1917456051} + - component: {fileID: 1917456050} + m_Layer: 0 + m_Name: UIHookup + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &1917456050 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1917456049} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: b8368d89d0c587f45aefff388426bd1f, type: 3} + m_Name: + m_EditorClassIdentifier: + MoveTouch: {fileID: 1731919963} + MainCanvas: {fileID: 2078452657} +--- !u!114 &1917456051 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1917456049} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: b8368d89d0c587f45aefff388426bd1f, type: 3} + m_Name: + m_EditorClassIdentifier: + MoveTouch: {fileID: 0} + MainCanvas: {fileID: 0} +--- !u!4 &1917456052 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1917456049} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 618.394, y: 441.65213, z: -927.14417} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 10 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &2071196361 GameObject: m_ObjectHideFlags: 0 @@ -1448,3 +1647,102 @@ m_Father: {fileID: 0} m_RootOrder: 2 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &2078452654 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2078452658} + - component: {fileID: 2078452657} + - component: {fileID: 2078452656} + - component: {fileID: 2078452655} + m_Layer: 5 + m_Name: Canvas + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &2078452655 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2078452654} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: dc42784cf147c0c48a680349fa168899, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreReversedGraphics: 1 + m_BlockingObjects: 0 + m_BlockingMask: + serializedVersion: 2 + m_Bits: 4294967295 +--- !u!114 &2078452656 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2078452654} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0cd44c1031e13a943bb63640046fad76, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UiScaleMode: 1 + m_ReferencePixelsPerUnit: 100 + m_ScaleFactor: 1 + m_ReferenceResolution: {x: 900, y: 600} + m_ScreenMatchMode: 1 + m_MatchWidthOrHeight: 0.525 + m_PhysicalUnit: 3 + m_FallbackScreenDPI: 96 + m_DefaultSpriteDPI: 96 + m_DynamicPixelsPerUnit: 1 +--- !u!223 &2078452657 +Canvas: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2078452654} + m_Enabled: 1 + serializedVersion: 3 + m_RenderMode: 0 + m_Camera: {fileID: 0} + m_PlaneDistance: 100 + m_PixelPerfect: 0 + m_ReceivesEvents: 1 + m_OverrideSorting: 0 + m_OverridePixelPerfect: 0 + m_SortingBucketNormalizedSize: 0 + m_AdditionalShaderChannelsFlag: 0 + m_SortingLayerID: 0 + m_SortingOrder: 0 + m_TargetDisplay: 0 +--- !u!224 &2078452658 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2078452654} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 1731919963} + m_Father: {fileID: 0} + m_RootOrder: 8 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0, y: 0} diff --git a/Assets/Scripts/NetHost.cs b/Assets/Scripts/NetHost.cs index 66eb5fd..7709698 100644 --- a/Assets/Scripts/NetHost.cs +++ b/Assets/Scripts/NetHost.cs @@ -38,8 +38,8 @@ socket = new WebSocket(new System.Uri("wss://blackout.mhack.io/websocket")); - socket.PingFrequency = 15000; - socket.StartPingThread = true; + //socket.PingFrequency = 15000; + //socket.StartPingThread = true; socket.OnOpen += Opened; socket.OnClosed += Closed; diff --git a/Assets/UI.meta b/Assets/UI.meta new file mode 100644 index 0000000..6b5b542 --- /dev/null +++ b/Assets/UI.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 1c38ca1a161adc544b807f07a6eda614 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/UI/TouchMove.png b/Assets/UI/TouchMove.png new file mode 100644 index 0000000..545f0f3 --- /dev/null +++ b/Assets/UI/TouchMove.png Binary files differ diff --git a/Assets/Player/Player.cs b/Assets/Player/Player.cs new file mode 100644 index 0000000..31941eb --- /dev/null +++ b/Assets/Player/Player.cs @@ -0,0 +1,121 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +public class Player : MonoBehaviour +{ + private Item netItem; + public bool ForceLocal; + + public bool IsLocal + { + get + { + return ForceLocal || (netItem != null && netItem.IsLocal); + } + } + + private UIHookup uiHookup; + + private CharacterController charControl; + // Start is called before the first frame update + void Awake() + { + netItem = GetComponentInChildren(); + castLight = transform.Find("CastLight").gameObject; + + uiHookup = FindObjectOfType(); + + if (ForceLocal) + { + StartLocal(); + } + } + + private GameObject castLight; + private float bottomOffset; + void StartLocal() + { + castLight.SetActive(true); + charControl = GetComponentInChildren(); + charControl.enabled = true; + + bottomOffset = -charControl.center.y + charControl.height * 0.5f; + } + + public float Speed; + + private List touches = new List(); + + public float MoveTouchFullZone = 0.7f; + public float MoveTouchRadiusSize = 1.45f; + + // Update is called once per frame + void Update() + { + if (IsLocal && charControl != null) + { + RaycastHit hit; + if (Physics.Raycast(new Ray(transform.position, Vector3.down), out hit, 10f)) + { + Vector3 pos = transform.position; + pos.y = hit.point.y + (bottomOffset + 0.01f); + transform.position = pos; + } + + Vector3 wantMove = new Vector3(); + + if (Input.GetKey(KeyCode.UpArrow)) + { + wantMove.z += 1; + } + if (Input.GetKey(KeyCode.DownArrow)) + { + wantMove.z -= 1; + } + if (Input.GetKey(KeyCode.RightArrow)) + { + wantMove.x += 1; + } + if (Input.GetKey(KeyCode.LeftArrow)) + { + wantMove.x -= 1; + } + + wantMove.Normalize(); + + if (uiHookup != null && uiHookup.MoveTouch != null && uiHookup.MainCanvas != null) + { + float radius = uiHookup.MoveTouch.rect.width * 0.5f * MoveTouchRadiusSize; + + touches.Clear(); + touches.AddRange(Input.touches); + + if (Input.GetMouseButton(0)) + { + touches.Add(new Touch { position = Input.mousePosition }); + } + + foreach (Touch touch in touches) + { + Vector2 diff = new Vector2(); + RectTransformUtility.ScreenPointToLocalPointInRectangle(uiHookup.MoveTouch, touch.position, null, out diff); + if (diff.magnitude < radius) + { + wantMove = new Vector3(diff.x, 0, diff.y) / (radius * MoveTouchFullZone); + if (wantMove.magnitude > 1) wantMove.Normalize(); + } + } + } + + + + if (wantMove.sqrMagnitude > 0) + { + wantMove *= Speed * Time.deltaTime; + wantMove.y = -0.1f * Time.deltaTime; + CollisionFlags flags = charControl.Move(wantMove); + } + } + } +} diff --git a/Assets/Player/Player.cs.meta b/Assets/Player/Player.cs.meta new file mode 100644 index 0000000..1489e8e --- /dev/null +++ b/Assets/Player/Player.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 45fac14d91eb200479e945e56930d545 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Player/Player.prefab b/Assets/Player/Player.prefab index 891b73b..916810b 100644 --- a/Assets/Player/Player.prefab +++ b/Assets/Player/Player.prefab @@ -78,6 +78,8 @@ m_EditorClassIdentifier: ForceLocal: 0 Speed: 8 + MoveTouchFullZone: 0.7 + MoveTouchRadiusSize: 1.45 --- !u!143 &446445004819590403 CharacterController: m_ObjectHideFlags: 0 diff --git a/Assets/Player/UIHookup.cs b/Assets/Player/UIHookup.cs new file mode 100644 index 0000000..93899a9 --- /dev/null +++ b/Assets/Player/UIHookup.cs @@ -0,0 +1,20 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +public class UIHookup : MonoBehaviour +{ + public RectTransform MoveTouch; + public Canvas MainCanvas; + // Start is called before the first frame update + void Start() + { + + } + + // Update is called once per frame + void Update() + { + + } +} diff --git a/Assets/Player/UIHookup.cs.meta b/Assets/Player/UIHookup.cs.meta new file mode 100644 index 0000000..84fc3f1 --- /dev/null +++ b/Assets/Player/UIHookup.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: b8368d89d0c587f45aefff388426bd1f +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scenes/Lobby.unity b/Assets/Scenes/Lobby.unity index 4bcb9b4..4f4bfe0 100644 --- a/Assets/Scenes/Lobby.unity +++ b/Assets/Scenes/Lobby.unity @@ -855,6 +855,72 @@ m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 731784984} m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &755741635 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 755741638} + - component: {fileID: 755741637} + - component: {fileID: 755741636} + m_Layer: 0 + m_Name: EventSystem + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &755741636 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 755741635} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4f231c4fb786f3946a6b90b886c48677, type: 3} + m_Name: + m_EditorClassIdentifier: + m_HorizontalAxis: Horizontal + m_VerticalAxis: Vertical + m_SubmitButton: Submit + m_CancelButton: Cancel + m_InputActionsPerSecond: 10 + m_RepeatDelay: 0.5 + m_ForceModuleActive: 0 +--- !u!114 &755741637 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 755741635} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 76c392e42b5098c458856cdf6ecaaaa1, type: 3} + m_Name: + m_EditorClassIdentifier: + m_FirstSelected: {fileID: 0} + m_sendNavigationEvents: 1 + m_DragThreshold: 10 +--- !u!4 &755741638 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 755741635} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 9 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &797860887 GameObject: m_ObjectHideFlags: 0 @@ -1308,6 +1374,79 @@ m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1698856408} m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &1731919962 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1731919963} + - component: {fileID: 1731919965} + - component: {fileID: 1731919964} + m_Layer: 5 + m_Name: Image + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1731919963 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1731919962} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1.7835172, y: 1.7835172, z: 1.7835172} + m_Children: [] + m_Father: {fileID: 2078452658} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 100, y: 99} + m_SizeDelta: {x: 100, y: 100} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1731919964 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1731919962} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: c15f112c6aa43f34782f5270b6ce8466, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &1731919965 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1731919962} + m_CullTransparentMesh: 0 --- !u!1 &1741634442 GameObject: m_ObjectHideFlags: 0 @@ -1355,6 +1494,66 @@ m_Father: {fileID: 0} m_RootOrder: 7 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &1917456049 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1917456052} + - component: {fileID: 1917456051} + - component: {fileID: 1917456050} + m_Layer: 0 + m_Name: UIHookup + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &1917456050 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1917456049} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: b8368d89d0c587f45aefff388426bd1f, type: 3} + m_Name: + m_EditorClassIdentifier: + MoveTouch: {fileID: 1731919963} + MainCanvas: {fileID: 2078452657} +--- !u!114 &1917456051 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1917456049} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: b8368d89d0c587f45aefff388426bd1f, type: 3} + m_Name: + m_EditorClassIdentifier: + MoveTouch: {fileID: 0} + MainCanvas: {fileID: 0} +--- !u!4 &1917456052 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1917456049} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 618.394, y: 441.65213, z: -927.14417} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 10 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &2071196361 GameObject: m_ObjectHideFlags: 0 @@ -1448,3 +1647,102 @@ m_Father: {fileID: 0} m_RootOrder: 2 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &2078452654 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2078452658} + - component: {fileID: 2078452657} + - component: {fileID: 2078452656} + - component: {fileID: 2078452655} + m_Layer: 5 + m_Name: Canvas + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &2078452655 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2078452654} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: dc42784cf147c0c48a680349fa168899, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreReversedGraphics: 1 + m_BlockingObjects: 0 + m_BlockingMask: + serializedVersion: 2 + m_Bits: 4294967295 +--- !u!114 &2078452656 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2078452654} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0cd44c1031e13a943bb63640046fad76, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UiScaleMode: 1 + m_ReferencePixelsPerUnit: 100 + m_ScaleFactor: 1 + m_ReferenceResolution: {x: 900, y: 600} + m_ScreenMatchMode: 1 + m_MatchWidthOrHeight: 0.525 + m_PhysicalUnit: 3 + m_FallbackScreenDPI: 96 + m_DefaultSpriteDPI: 96 + m_DynamicPixelsPerUnit: 1 +--- !u!223 &2078452657 +Canvas: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2078452654} + m_Enabled: 1 + serializedVersion: 3 + m_RenderMode: 0 + m_Camera: {fileID: 0} + m_PlaneDistance: 100 + m_PixelPerfect: 0 + m_ReceivesEvents: 1 + m_OverrideSorting: 0 + m_OverridePixelPerfect: 0 + m_SortingBucketNormalizedSize: 0 + m_AdditionalShaderChannelsFlag: 0 + m_SortingLayerID: 0 + m_SortingOrder: 0 + m_TargetDisplay: 0 +--- !u!224 &2078452658 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2078452654} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 1731919963} + m_Father: {fileID: 0} + m_RootOrder: 8 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0, y: 0} diff --git a/Assets/Scripts/NetHost.cs b/Assets/Scripts/NetHost.cs index 66eb5fd..7709698 100644 --- a/Assets/Scripts/NetHost.cs +++ b/Assets/Scripts/NetHost.cs @@ -38,8 +38,8 @@ socket = new WebSocket(new System.Uri("wss://blackout.mhack.io/websocket")); - socket.PingFrequency = 15000; - socket.StartPingThread = true; + //socket.PingFrequency = 15000; + //socket.StartPingThread = true; socket.OnOpen += Opened; socket.OnClosed += Closed; diff --git a/Assets/UI.meta b/Assets/UI.meta new file mode 100644 index 0000000..6b5b542 --- /dev/null +++ b/Assets/UI.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 1c38ca1a161adc544b807f07a6eda614 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/UI/TouchMove.png b/Assets/UI/TouchMove.png new file mode 100644 index 0000000..545f0f3 --- /dev/null +++ b/Assets/UI/TouchMove.png Binary files differ diff --git a/Assets/UI/TouchMove.png.meta b/Assets/UI/TouchMove.png.meta new file mode 100644 index 0000000..4a9ea4c --- /dev/null +++ b/Assets/UI/TouchMove.png.meta @@ -0,0 +1,127 @@ +fileFormatVersion: 2 +guid: c15f112c6aa43f34782f5270b6ce8466 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 10 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: -1 + mipBias: -100 + wrapU: 1 + wrapV: 1 + wrapW: -1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 1 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 1 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 8 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Android + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: WebGL + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: 5e97eb03825dee720800000000000000 + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Player/Player.cs b/Assets/Player/Player.cs new file mode 100644 index 0000000..31941eb --- /dev/null +++ b/Assets/Player/Player.cs @@ -0,0 +1,121 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +public class Player : MonoBehaviour +{ + private Item netItem; + public bool ForceLocal; + + public bool IsLocal + { + get + { + return ForceLocal || (netItem != null && netItem.IsLocal); + } + } + + private UIHookup uiHookup; + + private CharacterController charControl; + // Start is called before the first frame update + void Awake() + { + netItem = GetComponentInChildren(); + castLight = transform.Find("CastLight").gameObject; + + uiHookup = FindObjectOfType(); + + if (ForceLocal) + { + StartLocal(); + } + } + + private GameObject castLight; + private float bottomOffset; + void StartLocal() + { + castLight.SetActive(true); + charControl = GetComponentInChildren(); + charControl.enabled = true; + + bottomOffset = -charControl.center.y + charControl.height * 0.5f; + } + + public float Speed; + + private List touches = new List(); + + public float MoveTouchFullZone = 0.7f; + public float MoveTouchRadiusSize = 1.45f; + + // Update is called once per frame + void Update() + { + if (IsLocal && charControl != null) + { + RaycastHit hit; + if (Physics.Raycast(new Ray(transform.position, Vector3.down), out hit, 10f)) + { + Vector3 pos = transform.position; + pos.y = hit.point.y + (bottomOffset + 0.01f); + transform.position = pos; + } + + Vector3 wantMove = new Vector3(); + + if (Input.GetKey(KeyCode.UpArrow)) + { + wantMove.z += 1; + } + if (Input.GetKey(KeyCode.DownArrow)) + { + wantMove.z -= 1; + } + if (Input.GetKey(KeyCode.RightArrow)) + { + wantMove.x += 1; + } + if (Input.GetKey(KeyCode.LeftArrow)) + { + wantMove.x -= 1; + } + + wantMove.Normalize(); + + if (uiHookup != null && uiHookup.MoveTouch != null && uiHookup.MainCanvas != null) + { + float radius = uiHookup.MoveTouch.rect.width * 0.5f * MoveTouchRadiusSize; + + touches.Clear(); + touches.AddRange(Input.touches); + + if (Input.GetMouseButton(0)) + { + touches.Add(new Touch { position = Input.mousePosition }); + } + + foreach (Touch touch in touches) + { + Vector2 diff = new Vector2(); + RectTransformUtility.ScreenPointToLocalPointInRectangle(uiHookup.MoveTouch, touch.position, null, out diff); + if (diff.magnitude < radius) + { + wantMove = new Vector3(diff.x, 0, diff.y) / (radius * MoveTouchFullZone); + if (wantMove.magnitude > 1) wantMove.Normalize(); + } + } + } + + + + if (wantMove.sqrMagnitude > 0) + { + wantMove *= Speed * Time.deltaTime; + wantMove.y = -0.1f * Time.deltaTime; + CollisionFlags flags = charControl.Move(wantMove); + } + } + } +} diff --git a/Assets/Player/Player.cs.meta b/Assets/Player/Player.cs.meta new file mode 100644 index 0000000..1489e8e --- /dev/null +++ b/Assets/Player/Player.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 45fac14d91eb200479e945e56930d545 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Player/Player.prefab b/Assets/Player/Player.prefab index 891b73b..916810b 100644 --- a/Assets/Player/Player.prefab +++ b/Assets/Player/Player.prefab @@ -78,6 +78,8 @@ m_EditorClassIdentifier: ForceLocal: 0 Speed: 8 + MoveTouchFullZone: 0.7 + MoveTouchRadiusSize: 1.45 --- !u!143 &446445004819590403 CharacterController: m_ObjectHideFlags: 0 diff --git a/Assets/Player/UIHookup.cs b/Assets/Player/UIHookup.cs new file mode 100644 index 0000000..93899a9 --- /dev/null +++ b/Assets/Player/UIHookup.cs @@ -0,0 +1,20 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +public class UIHookup : MonoBehaviour +{ + public RectTransform MoveTouch; + public Canvas MainCanvas; + // Start is called before the first frame update + void Start() + { + + } + + // Update is called once per frame + void Update() + { + + } +} diff --git a/Assets/Player/UIHookup.cs.meta b/Assets/Player/UIHookup.cs.meta new file mode 100644 index 0000000..84fc3f1 --- /dev/null +++ b/Assets/Player/UIHookup.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: b8368d89d0c587f45aefff388426bd1f +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scenes/Lobby.unity b/Assets/Scenes/Lobby.unity index 4bcb9b4..4f4bfe0 100644 --- a/Assets/Scenes/Lobby.unity +++ b/Assets/Scenes/Lobby.unity @@ -855,6 +855,72 @@ m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 731784984} m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &755741635 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 755741638} + - component: {fileID: 755741637} + - component: {fileID: 755741636} + m_Layer: 0 + m_Name: EventSystem + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &755741636 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 755741635} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4f231c4fb786f3946a6b90b886c48677, type: 3} + m_Name: + m_EditorClassIdentifier: + m_HorizontalAxis: Horizontal + m_VerticalAxis: Vertical + m_SubmitButton: Submit + m_CancelButton: Cancel + m_InputActionsPerSecond: 10 + m_RepeatDelay: 0.5 + m_ForceModuleActive: 0 +--- !u!114 &755741637 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 755741635} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 76c392e42b5098c458856cdf6ecaaaa1, type: 3} + m_Name: + m_EditorClassIdentifier: + m_FirstSelected: {fileID: 0} + m_sendNavigationEvents: 1 + m_DragThreshold: 10 +--- !u!4 &755741638 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 755741635} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 9 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &797860887 GameObject: m_ObjectHideFlags: 0 @@ -1308,6 +1374,79 @@ m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1698856408} m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &1731919962 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1731919963} + - component: {fileID: 1731919965} + - component: {fileID: 1731919964} + m_Layer: 5 + m_Name: Image + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1731919963 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1731919962} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1.7835172, y: 1.7835172, z: 1.7835172} + m_Children: [] + m_Father: {fileID: 2078452658} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 100, y: 99} + m_SizeDelta: {x: 100, y: 100} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1731919964 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1731919962} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: c15f112c6aa43f34782f5270b6ce8466, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &1731919965 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1731919962} + m_CullTransparentMesh: 0 --- !u!1 &1741634442 GameObject: m_ObjectHideFlags: 0 @@ -1355,6 +1494,66 @@ m_Father: {fileID: 0} m_RootOrder: 7 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &1917456049 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1917456052} + - component: {fileID: 1917456051} + - component: {fileID: 1917456050} + m_Layer: 0 + m_Name: UIHookup + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &1917456050 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1917456049} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: b8368d89d0c587f45aefff388426bd1f, type: 3} + m_Name: + m_EditorClassIdentifier: + MoveTouch: {fileID: 1731919963} + MainCanvas: {fileID: 2078452657} +--- !u!114 &1917456051 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1917456049} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: b8368d89d0c587f45aefff388426bd1f, type: 3} + m_Name: + m_EditorClassIdentifier: + MoveTouch: {fileID: 0} + MainCanvas: {fileID: 0} +--- !u!4 &1917456052 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1917456049} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 618.394, y: 441.65213, z: -927.14417} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 10 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &2071196361 GameObject: m_ObjectHideFlags: 0 @@ -1448,3 +1647,102 @@ m_Father: {fileID: 0} m_RootOrder: 2 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &2078452654 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2078452658} + - component: {fileID: 2078452657} + - component: {fileID: 2078452656} + - component: {fileID: 2078452655} + m_Layer: 5 + m_Name: Canvas + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &2078452655 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2078452654} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: dc42784cf147c0c48a680349fa168899, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreReversedGraphics: 1 + m_BlockingObjects: 0 + m_BlockingMask: + serializedVersion: 2 + m_Bits: 4294967295 +--- !u!114 &2078452656 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2078452654} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0cd44c1031e13a943bb63640046fad76, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UiScaleMode: 1 + m_ReferencePixelsPerUnit: 100 + m_ScaleFactor: 1 + m_ReferenceResolution: {x: 900, y: 600} + m_ScreenMatchMode: 1 + m_MatchWidthOrHeight: 0.525 + m_PhysicalUnit: 3 + m_FallbackScreenDPI: 96 + m_DefaultSpriteDPI: 96 + m_DynamicPixelsPerUnit: 1 +--- !u!223 &2078452657 +Canvas: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2078452654} + m_Enabled: 1 + serializedVersion: 3 + m_RenderMode: 0 + m_Camera: {fileID: 0} + m_PlaneDistance: 100 + m_PixelPerfect: 0 + m_ReceivesEvents: 1 + m_OverrideSorting: 0 + m_OverridePixelPerfect: 0 + m_SortingBucketNormalizedSize: 0 + m_AdditionalShaderChannelsFlag: 0 + m_SortingLayerID: 0 + m_SortingOrder: 0 + m_TargetDisplay: 0 +--- !u!224 &2078452658 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2078452654} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 1731919963} + m_Father: {fileID: 0} + m_RootOrder: 8 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0, y: 0} diff --git a/Assets/Scripts/NetHost.cs b/Assets/Scripts/NetHost.cs index 66eb5fd..7709698 100644 --- a/Assets/Scripts/NetHost.cs +++ b/Assets/Scripts/NetHost.cs @@ -38,8 +38,8 @@ socket = new WebSocket(new System.Uri("wss://blackout.mhack.io/websocket")); - socket.PingFrequency = 15000; - socket.StartPingThread = true; + //socket.PingFrequency = 15000; + //socket.StartPingThread = true; socket.OnOpen += Opened; socket.OnClosed += Closed; diff --git a/Assets/UI.meta b/Assets/UI.meta new file mode 100644 index 0000000..6b5b542 --- /dev/null +++ b/Assets/UI.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 1c38ca1a161adc544b807f07a6eda614 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/UI/TouchMove.png b/Assets/UI/TouchMove.png new file mode 100644 index 0000000..545f0f3 --- /dev/null +++ b/Assets/UI/TouchMove.png Binary files differ diff --git a/Assets/UI/TouchMove.png.meta b/Assets/UI/TouchMove.png.meta new file mode 100644 index 0000000..4a9ea4c --- /dev/null +++ b/Assets/UI/TouchMove.png.meta @@ -0,0 +1,127 @@ +fileFormatVersion: 2 +guid: c15f112c6aa43f34782f5270b6ce8466 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 10 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: -1 + mipBias: -100 + wrapU: 1 + wrapV: 1 + wrapW: -1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 1 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 1 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 8 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Android + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: WebGL + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: 5e97eb03825dee720800000000000000 + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/ProjectSettings/GraphicsSettings.asset b/ProjectSettings/GraphicsSettings.asset index 4654e13..71c9e0f 100755 --- a/ProjectSettings/GraphicsSettings.asset +++ b/ProjectSettings/GraphicsSettings.asset @@ -34,6 +34,7 @@ - {fileID: 16000, guid: 0000000000000000f000000000000000, type: 0} - {fileID: 16001, guid: 0000000000000000f000000000000000, type: 0} - {fileID: 17000, guid: 0000000000000000f000000000000000, type: 0} + - {fileID: 16003, guid: 0000000000000000f000000000000000, type: 0} m_PreloadedShaders: [] m_SpritesDefaultMaterial: {fileID: 10754, guid: 0000000000000000f000000000000000, type: 0} diff --git a/Assets/Player/Player.cs b/Assets/Player/Player.cs new file mode 100644 index 0000000..31941eb --- /dev/null +++ b/Assets/Player/Player.cs @@ -0,0 +1,121 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +public class Player : MonoBehaviour +{ + private Item netItem; + public bool ForceLocal; + + public bool IsLocal + { + get + { + return ForceLocal || (netItem != null && netItem.IsLocal); + } + } + + private UIHookup uiHookup; + + private CharacterController charControl; + // Start is called before the first frame update + void Awake() + { + netItem = GetComponentInChildren(); + castLight = transform.Find("CastLight").gameObject; + + uiHookup = FindObjectOfType(); + + if (ForceLocal) + { + StartLocal(); + } + } + + private GameObject castLight; + private float bottomOffset; + void StartLocal() + { + castLight.SetActive(true); + charControl = GetComponentInChildren(); + charControl.enabled = true; + + bottomOffset = -charControl.center.y + charControl.height * 0.5f; + } + + public float Speed; + + private List touches = new List(); + + public float MoveTouchFullZone = 0.7f; + public float MoveTouchRadiusSize = 1.45f; + + // Update is called once per frame + void Update() + { + if (IsLocal && charControl != null) + { + RaycastHit hit; + if (Physics.Raycast(new Ray(transform.position, Vector3.down), out hit, 10f)) + { + Vector3 pos = transform.position; + pos.y = hit.point.y + (bottomOffset + 0.01f); + transform.position = pos; + } + + Vector3 wantMove = new Vector3(); + + if (Input.GetKey(KeyCode.UpArrow)) + { + wantMove.z += 1; + } + if (Input.GetKey(KeyCode.DownArrow)) + { + wantMove.z -= 1; + } + if (Input.GetKey(KeyCode.RightArrow)) + { + wantMove.x += 1; + } + if (Input.GetKey(KeyCode.LeftArrow)) + { + wantMove.x -= 1; + } + + wantMove.Normalize(); + + if (uiHookup != null && uiHookup.MoveTouch != null && uiHookup.MainCanvas != null) + { + float radius = uiHookup.MoveTouch.rect.width * 0.5f * MoveTouchRadiusSize; + + touches.Clear(); + touches.AddRange(Input.touches); + + if (Input.GetMouseButton(0)) + { + touches.Add(new Touch { position = Input.mousePosition }); + } + + foreach (Touch touch in touches) + { + Vector2 diff = new Vector2(); + RectTransformUtility.ScreenPointToLocalPointInRectangle(uiHookup.MoveTouch, touch.position, null, out diff); + if (diff.magnitude < radius) + { + wantMove = new Vector3(diff.x, 0, diff.y) / (radius * MoveTouchFullZone); + if (wantMove.magnitude > 1) wantMove.Normalize(); + } + } + } + + + + if (wantMove.sqrMagnitude > 0) + { + wantMove *= Speed * Time.deltaTime; + wantMove.y = -0.1f * Time.deltaTime; + CollisionFlags flags = charControl.Move(wantMove); + } + } + } +} diff --git a/Assets/Player/Player.cs.meta b/Assets/Player/Player.cs.meta new file mode 100644 index 0000000..1489e8e --- /dev/null +++ b/Assets/Player/Player.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 45fac14d91eb200479e945e56930d545 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Player/Player.prefab b/Assets/Player/Player.prefab index 891b73b..916810b 100644 --- a/Assets/Player/Player.prefab +++ b/Assets/Player/Player.prefab @@ -78,6 +78,8 @@ m_EditorClassIdentifier: ForceLocal: 0 Speed: 8 + MoveTouchFullZone: 0.7 + MoveTouchRadiusSize: 1.45 --- !u!143 &446445004819590403 CharacterController: m_ObjectHideFlags: 0 diff --git a/Assets/Player/UIHookup.cs b/Assets/Player/UIHookup.cs new file mode 100644 index 0000000..93899a9 --- /dev/null +++ b/Assets/Player/UIHookup.cs @@ -0,0 +1,20 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +public class UIHookup : MonoBehaviour +{ + public RectTransform MoveTouch; + public Canvas MainCanvas; + // Start is called before the first frame update + void Start() + { + + } + + // Update is called once per frame + void Update() + { + + } +} diff --git a/Assets/Player/UIHookup.cs.meta b/Assets/Player/UIHookup.cs.meta new file mode 100644 index 0000000..84fc3f1 --- /dev/null +++ b/Assets/Player/UIHookup.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: b8368d89d0c587f45aefff388426bd1f +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scenes/Lobby.unity b/Assets/Scenes/Lobby.unity index 4bcb9b4..4f4bfe0 100644 --- a/Assets/Scenes/Lobby.unity +++ b/Assets/Scenes/Lobby.unity @@ -855,6 +855,72 @@ m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 731784984} m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &755741635 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 755741638} + - component: {fileID: 755741637} + - component: {fileID: 755741636} + m_Layer: 0 + m_Name: EventSystem + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &755741636 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 755741635} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4f231c4fb786f3946a6b90b886c48677, type: 3} + m_Name: + m_EditorClassIdentifier: + m_HorizontalAxis: Horizontal + m_VerticalAxis: Vertical + m_SubmitButton: Submit + m_CancelButton: Cancel + m_InputActionsPerSecond: 10 + m_RepeatDelay: 0.5 + m_ForceModuleActive: 0 +--- !u!114 &755741637 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 755741635} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 76c392e42b5098c458856cdf6ecaaaa1, type: 3} + m_Name: + m_EditorClassIdentifier: + m_FirstSelected: {fileID: 0} + m_sendNavigationEvents: 1 + m_DragThreshold: 10 +--- !u!4 &755741638 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 755741635} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 9 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &797860887 GameObject: m_ObjectHideFlags: 0 @@ -1308,6 +1374,79 @@ m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1698856408} m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &1731919962 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1731919963} + - component: {fileID: 1731919965} + - component: {fileID: 1731919964} + m_Layer: 5 + m_Name: Image + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &1731919963 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1731919962} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1.7835172, y: 1.7835172, z: 1.7835172} + m_Children: [] + m_Father: {fileID: 2078452658} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 100, y: 99} + m_SizeDelta: {x: 100, y: 100} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &1731919964 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1731919962} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 21300000, guid: c15f112c6aa43f34782f5270b6ce8466, type: 3} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!222 &1731919965 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1731919962} + m_CullTransparentMesh: 0 --- !u!1 &1741634442 GameObject: m_ObjectHideFlags: 0 @@ -1355,6 +1494,66 @@ m_Father: {fileID: 0} m_RootOrder: 7 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &1917456049 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1917456052} + - component: {fileID: 1917456051} + - component: {fileID: 1917456050} + m_Layer: 0 + m_Name: UIHookup + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &1917456050 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1917456049} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: b8368d89d0c587f45aefff388426bd1f, type: 3} + m_Name: + m_EditorClassIdentifier: + MoveTouch: {fileID: 1731919963} + MainCanvas: {fileID: 2078452657} +--- !u!114 &1917456051 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1917456049} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: b8368d89d0c587f45aefff388426bd1f, type: 3} + m_Name: + m_EditorClassIdentifier: + MoveTouch: {fileID: 0} + MainCanvas: {fileID: 0} +--- !u!4 &1917456052 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1917456049} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 618.394, y: 441.65213, z: -927.14417} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 10 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &2071196361 GameObject: m_ObjectHideFlags: 0 @@ -1448,3 +1647,102 @@ m_Father: {fileID: 0} m_RootOrder: 2 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &2078452654 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2078452658} + - component: {fileID: 2078452657} + - component: {fileID: 2078452656} + - component: {fileID: 2078452655} + m_Layer: 5 + m_Name: Canvas + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &2078452655 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2078452654} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: dc42784cf147c0c48a680349fa168899, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreReversedGraphics: 1 + m_BlockingObjects: 0 + m_BlockingMask: + serializedVersion: 2 + m_Bits: 4294967295 +--- !u!114 &2078452656 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2078452654} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0cd44c1031e13a943bb63640046fad76, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UiScaleMode: 1 + m_ReferencePixelsPerUnit: 100 + m_ScaleFactor: 1 + m_ReferenceResolution: {x: 900, y: 600} + m_ScreenMatchMode: 1 + m_MatchWidthOrHeight: 0.525 + m_PhysicalUnit: 3 + m_FallbackScreenDPI: 96 + m_DefaultSpriteDPI: 96 + m_DynamicPixelsPerUnit: 1 +--- !u!223 &2078452657 +Canvas: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2078452654} + m_Enabled: 1 + serializedVersion: 3 + m_RenderMode: 0 + m_Camera: {fileID: 0} + m_PlaneDistance: 100 + m_PixelPerfect: 0 + m_ReceivesEvents: 1 + m_OverrideSorting: 0 + m_OverridePixelPerfect: 0 + m_SortingBucketNormalizedSize: 0 + m_AdditionalShaderChannelsFlag: 0 + m_SortingLayerID: 0 + m_SortingOrder: 0 + m_TargetDisplay: 0 +--- !u!224 &2078452658 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2078452654} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 1731919963} + m_Father: {fileID: 0} + m_RootOrder: 8 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0, y: 0} diff --git a/Assets/Scripts/NetHost.cs b/Assets/Scripts/NetHost.cs index 66eb5fd..7709698 100644 --- a/Assets/Scripts/NetHost.cs +++ b/Assets/Scripts/NetHost.cs @@ -38,8 +38,8 @@ socket = new WebSocket(new System.Uri("wss://blackout.mhack.io/websocket")); - socket.PingFrequency = 15000; - socket.StartPingThread = true; + //socket.PingFrequency = 15000; + //socket.StartPingThread = true; socket.OnOpen += Opened; socket.OnClosed += Closed; diff --git a/Assets/UI.meta b/Assets/UI.meta new file mode 100644 index 0000000..6b5b542 --- /dev/null +++ b/Assets/UI.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 1c38ca1a161adc544b807f07a6eda614 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/UI/TouchMove.png b/Assets/UI/TouchMove.png new file mode 100644 index 0000000..545f0f3 --- /dev/null +++ b/Assets/UI/TouchMove.png Binary files differ diff --git a/Assets/UI/TouchMove.png.meta b/Assets/UI/TouchMove.png.meta new file mode 100644 index 0000000..4a9ea4c --- /dev/null +++ b/Assets/UI/TouchMove.png.meta @@ -0,0 +1,127 @@ +fileFormatVersion: 2 +guid: c15f112c6aa43f34782f5270b6ce8466 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 10 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: -1 + mipBias: -100 + wrapU: 1 + wrapV: 1 + wrapW: -1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 1 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 1 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 8 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Android + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: WebGL + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: 5e97eb03825dee720800000000000000 + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/ProjectSettings/GraphicsSettings.asset b/ProjectSettings/GraphicsSettings.asset index 4654e13..71c9e0f 100755 --- a/ProjectSettings/GraphicsSettings.asset +++ b/ProjectSettings/GraphicsSettings.asset @@ -34,6 +34,7 @@ - {fileID: 16000, guid: 0000000000000000f000000000000000, type: 0} - {fileID: 16001, guid: 0000000000000000f000000000000000, type: 0} - {fileID: 17000, guid: 0000000000000000f000000000000000, type: 0} + - {fileID: 16003, guid: 0000000000000000f000000000000000, type: 0} m_PreloadedShaders: [] m_SpritesDefaultMaterial: {fileID: 10754, guid: 0000000000000000f000000000000000, type: 0} diff --git a/ProjectSettings/ProjectSettings.asset b/ProjectSettings/ProjectSettings.asset index 446a7e3..32672fa 100755 --- a/ProjectSettings/ProjectSettings.asset +++ b/ProjectSettings/ProjectSettings.asset @@ -8,12 +8,12 @@ AndroidProfiler: 0 AndroidFilterTouchesWhenObscured: 0 AndroidEnableSustainedPerformanceMode: 0 - defaultScreenOrientation: 4 + defaultScreenOrientation: 2 targetDevice: 2 useOnDemandResources: 0 accelerometerFrequency: 60 companyName: DefaultCompany - productName: BlackoutClient + productName: Blackout defaultCursor: {fileID: 0} cursorHotspot: {x: 0, y: 0} m_SplashScreenBackgroundColor: {r: 0.13725491, g: 0.12156863, b: 0.1254902, a: 1} @@ -274,7 +274,99 @@ AndroidValidateAppBundleSize: 1 AndroidAppBundleSizeToValidate: 150 m_BuildTargetIcons: [] - m_BuildTargetPlatformIcons: [] + m_BuildTargetPlatformIcons: + - m_BuildTarget: Android + m_Icons: + - m_Textures: [] + m_Width: 432 + m_Height: 432 + m_Kind: 2 + m_SubKind: + - m_Textures: [] + m_Width: 324 + m_Height: 324 + m_Kind: 2 + m_SubKind: + - m_Textures: [] + m_Width: 216 + m_Height: 216 + m_Kind: 2 + m_SubKind: + - m_Textures: [] + m_Width: 162 + m_Height: 162 + m_Kind: 2 + m_SubKind: + - m_Textures: [] + m_Width: 108 + m_Height: 108 + m_Kind: 2 + m_SubKind: + - m_Textures: [] + m_Width: 81 + m_Height: 81 + m_Kind: 2 + m_SubKind: + - m_Textures: [] + m_Width: 192 + m_Height: 192 + m_Kind: 0 + m_SubKind: + - m_Textures: [] + m_Width: 144 + m_Height: 144 + m_Kind: 0 + m_SubKind: + - m_Textures: [] + m_Width: 96 + m_Height: 96 + m_Kind: 0 + m_SubKind: + - m_Textures: [] + m_Width: 72 + m_Height: 72 + m_Kind: 0 + m_SubKind: + - m_Textures: [] + m_Width: 48 + m_Height: 48 + m_Kind: 0 + m_SubKind: + - m_Textures: [] + m_Width: 36 + m_Height: 36 + m_Kind: 0 + m_SubKind: + - m_Textures: [] + m_Width: 192 + m_Height: 192 + m_Kind: 1 + m_SubKind: + - m_Textures: [] + m_Width: 144 + m_Height: 144 + m_Kind: 1 + m_SubKind: + - m_Textures: [] + m_Width: 96 + m_Height: 96 + m_Kind: 1 + m_SubKind: + - m_Textures: [] + m_Width: 72 + m_Height: 72 + m_Kind: 1 + m_SubKind: + - m_Textures: [] + m_Width: 48 + m_Height: 48 + m_Kind: 1 + m_SubKind: + - m_Textures: [] + m_Width: 36 + m_Height: 36 + m_Kind: 1 + m_SubKind: m_BuildTargetBatching: [] m_BuildTargetGraphicsJobs: - m_BuildTarget: MacStandaloneSupport @@ -555,7 +647,8 @@ platformArchitecture: {} scriptingBackend: {} il2cppCompilerConfiguration: {} - managedStrippingLevel: {} + managedStrippingLevel: + WebGL: 3 incrementalIl2cppBuild: {} allowUnsafeCode: 0 additionalIl2CppArgs: