Изменить цвет всей тайловой карты в единстве - PullRequest
0 голосов
/ 06 августа 2020

Я работаю над проектом в единстве, который основан на тайловых картах, и мне нужно иметь возможность изменить всю тайловую карту сразу. Я знаю, что могу использовать SetColor для одной плитки, но это потребует лишнего кода, который я предпочел бы сократить. Мой код ниже прикреплен к тайловой карте, на которой я хочу уменьшить альфа-канал, когда мой персонаж находится в определенном месте. В настоящее время он делает это только для одной плитки с функцией SetColor.

using System.Collections.Generic;
using UnityEngine;
using UnityEngine.Tilemaps;

public class houseController : MonoBehaviour
{


    public GameObject player;
    public Tilemap house;

    // Start is called before the first frame update
    void Start()
    {
        player = GameObject.Find("Player");
        house = GetComponent<Tilemap>();
    }

    // Update is called once per frame
    void Update()
    {
        Vector3 position = player.transform.position;
        Vector3Int x = new Vector3Int(1, 10, 0);
        Color color = new Vector4(1, 1, 1, 0.5f);
        Color color2 = new Vector4(1, 1, 1, 1);
        house.SetTileFlags(x, TileFlags.None);

        if (position[0] > -5.3f)
        {
            if (position[0] < 4.2f)
            {
                if (position[1] > 12.3f)
                {
                    if (position[1] < 18.2f)
                    {
                        house.SetColor(x, color);
                    }
                    else {
                        house.SetColor(x, color2);
                    }
                }
                else {
                    house.SetColor(x, color2);
                }
            }
            else {
                house.SetColor(x, color2);
            }
        }
        else { 
            house.SetColor(x, color2);
        }

    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...