RaycastHit?BacanjeZrakaZaSloj(Sloj sloj)
    {
        int maska = 1 << (int)sloj;
        Ray zraka = kamera.ScreenPointToRay(Input.mousePosition);

        RaycastHit udar;
        bool       udarioJe = Physics.Raycast(zraka, out udar, udaljenostDoPozadine, maska);

        if (udarioJe)
        {
            return(udar);
        }
        return(null);
    }
Esempio n. 2
0
    // Update is called once per frame
    void priPromjeniSloja(Sloj noviSloj)
    {
        switch (noviSloj)
        {
        case Sloj.Prohodno:
            Cursor.SetCursor(kursorZaHodanje, kursorHotspot, CursorMode.Auto);
            break;

        case Sloj.KrajSvijeta:
            Cursor.SetCursor(nepoznatiKursor, kursorHotspot, CursorMode.Auto);
            break;

        case Sloj.Neprijatelj:
            Cursor.SetCursor(kursorZaNapad, kursorHotspot, CursorMode.Auto);
            break;

        default:
            Debug.Log("Ne znam koji kursor prikazati");
            return;
        }
    }
    // Update is called once per frame
    void Update()
    {
        foreach (Sloj sloj in prioritetiSlojeva)
        {
            var udar = BacanjeZrakaZaSloj(sloj);
            if (udar.HasValue)
            {
                _udara = udar.Value;
                if (_udaraSloj != sloj) //ako se promjenio sloj
                {
                    _udaraSloj = sloj;
                    promatraciPromjeneSloja(sloj);
                }
                _udaraSloj = sloj;
                return;
            }
        }

        _udara.distance = udaljenostDoPozadine;
        _udaraSloj      = Sloj.KrajSvijeta;
        promatraciPromjeneSloja(udaraSloj);
    }