using System.Collections; using System.Collections.Generic; using UnityEngine; public class CharacterMovement : MonoBehaviour { public float Speed; GameObject localPlayer; public List Players = new List(); public List Nearby = new List(); public float DistanceToWin; Camera cam; private void Start() { localPlayer = Multiplayer.PlayersManager.Instance.LocalPlayer; Players.Add(localPlayer); foreach (GameObject curPlayer in Multiplayer.PlayersManager.Instance.RemotePlayers.Values) { Players.Add(curPlayer); } cam = localPlayer.GetComponentInChildren(); } //Public movement functions :) public void MoveLeft() { localPlayer.GetComponent().AddForce(new Vector3(-Speed, 0.0f, 0.0f)); } public void MoveRight() { localPlayer.GetComponent().AddForce(new Vector3(Speed, 0.0f, 0.0f)); } public void MoveUp() { localPlayer.GetComponent().AddForce(new Vector3(0.0f, 0.0f, Speed)); } public void MoveDown() { localPlayer.GetComponent().AddForce(new Vector3(0.0f, 0.0f, -Speed)); } public void mouseClick() { Vector3 screenMouse = Input.mousePosition; Vector3 mousePos = cam.ScreenToWorldPoint(screenMouse); Vector3 moveVec = new Vector3(mousePos.x, 0.0f, mousePos.z) * Speed; localPlayer.GetComponent().AddForce(moveVec); } public bool CheckNearby() { for (int i = 0; i < Players.Count; i++) { if ((localPlayer.transform.position - Players[i].transform.position).magnitude < DistanceToWin) { Greet(); } else { Player playerScript = Players[i].GetComponent(); foreach (GameObject dummy in playerScript.dummies) { if ((localPlayer.transform.position - dummy.transform.position).magnitude < DistanceToWin) { Greet(); } } } } return CheckWin(); } bool CheckWin() { for (int i = 0; i < Nearby.Count; i++) { if (Nearby[i] == false) { return false; } } return true; } public void Greet() { //Play audio //Trigger animation } }