protected virtual void Update() { var inputScroll = new Vector3( Input.GetAxis("Horizontal"), 0f, Input.GetAxis("Vertical")); _missionManager.MoveCamera(inputScroll * ScrollSpeed * Time.deltaTime); if (_missionManager.BlockUI || IsMouseOverUI()) { return; } if (Input.mousePresent && Input.GetMouseButtonUp(0)) { var ray = Camera.main.ScreenPointToRay(Input.mousePosition); RaycastHit hit; if (Physics.Raycast(ray, out hit, float.MaxValue, GridLayerMask.value)) { var gridPosition = GridPosition.FromVector3(hit.point); _missionManager.Select(gridPosition); } } if (Input.mousePresent && Input.GetMouseButtonUp(1)) { var ray = Camera.main.ScreenPointToRay(Input.mousePosition); RaycastHit hit; if (Physics.Raycast(ray, out hit, float.MaxValue, GridLayerMask.value)) { var gridPosition = GridPosition.FromVector3(hit.point); _missionManager.Interact(gridPosition); } } }
protected virtual void Awake() { var gridPosition = GridPosition.FromVector3(transform.position); transform.position = GridPosition.ToVector3(gridPosition); if (_sharedMesh == null) { _sharedMesh = new Mesh { name = "shared hex grid" }; var vertices = new List <Vector3>(4 * Cells * Cells * 12); var indices = new List <int>(4 * Cells * Cells * 36); for (var u = -Cells; u < Cells; u++) { for (var v = -Cells; v < Cells; v++) { AddCell(u, v, vertices, indices); } } _sharedMesh.SetVertices(vertices); _sharedMesh.SetTriangles(indices, 0); _sharedMesh.RecalculateNormals(); _sharedMesh.RecalculateTangents(); } var meshFilter = GetComponent <MeshFilter>(); meshFilter.mesh = _sharedMesh; }
protected virtual void Start() { Move(GridPosition.FromVector3(transform.position)); MissionManager = FindObjectOfType <MissionManager>(); MissionManager.Register(this); }