void Update() { /* * RaycastHit2D hit = Physics2D.Raycast(new Vector2(Camera.main.ScreenToWorldPoint(Input.mousePosition).x,Camera.main.ScreenToWorldPoint(Input.mousePosition).y), Vector3.forward, Mathf.Infinity); * if (hit){ * * } */ if (Input.GetMouseButtonDown(0)) { ElevatorPos elevatorPos = TouchToElevatorPos(Input.mousePosition); if (elevatorPos.ID != -1 && !FindElevator(elevatorPos.ID).Frozen) { FindElevator(elevatorPos.ID).TargetFloor = elevatorPos.Floor; } } if ((Input.touchCount > 0) && (Input.GetTouch(0).phase == TouchPhase.Began)) { ElevatorPos elevatorPos = TouchToElevatorPos(Input.GetTouch(0).position); if (elevatorPos.ID != -1 && !FindElevator(elevatorPos.ID).Frozen) { FindElevator(elevatorPos.ID).TargetFloor = elevatorPos.Floor; } /* * Ray raycast = Camera.main.ScreenPointToRay(Input.GetTouch(0).position); * RaycastHit raycastHit; * if (Physics.Raycast(raycast, out raycastHit)) * { * if (raycastHit.collider.CompareTag("Elevator")) * { * Debug.Log("Elevator clicked"); * } * } */ } }
public ElevatorPos TouchToElevatorPos(Vector2 pos) { Vector3 worldPos = Camera.main.ScreenToWorldPoint(pos); Debug.Log(worldPos + " - " + pos); ElevatorPos elevatorPos = new ElevatorPos(-1, -1); for (int i = 0; i < Elevators.Count; i++) { if (worldPos.x >= Elevators[i].ScreenPosRange.x && worldPos.x < Elevators[i].ScreenPosRange.y) { elevatorPos.ID = Elevators [i].ID; } } elevatorPos.Floor = Mathf.CeilToInt((worldPos.y - FloorStartY) / FloorHeight); if (elevatorPos.Floor < 1) { elevatorPos.Floor = 1; } return(elevatorPos); }
public override int GetHashCode() { return(ElevatorPos.GetHashCode() ^ Items.GetHashCode()); }