Esempio n. 1
0
    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);
            }
        }
    }
Esempio n. 2
0
    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;
    }
Esempio n. 3
0
 protected virtual void Start()
 {
     Move(GridPosition.FromVector3(transform.position));
     MissionManager = FindObjectOfType <MissionManager>();
     MissionManager.Register(this);
 }