Как получить указатель (или переменную-ссылку) на переменную Color в компоненте Image? что бы не обращаться постоянно к разным компонентам и не давать им разные цвета. Или это не возможно?
public class DrumManager : MonoBehaviour {
Transform obj;
DrumElement dr;
void Start()
{
//тут более менее работает
dr = new DrumElement(obj.GetComponent<Image>().color);
dr.Test();
dr.Test();
//выводит то что "задумано", только по моему исходный цвет не меняет
}
void Update()
{
//но вот когда доходит до этого момента, значение переменой обнуляется (т.е. rgba(0,0,0,0))
dr.Test();
}
}
unsafe class DrumElement
{
public Color* col;
public DrumElement(Color _col)
{
time = 0;
transparence = 0;
col = &_col;
print("cool" + *col);
print("cool111 " + *col);
Test();
}
public void Test()
{
(*col).r -= 0.1f;
print((*col).r);
}
}
Сам по себе тип Color
в Unity - это структура, об этом написано в официальной документации, а структуры в C# являются value type (или значимыми типами), а не ссылочными, в отличии от классов. Для ваших нужд самым логичным решением будет получить ссылку на комопнент Image
(который как раз-таки ссылочный тип, потому что является классом), и закэшировать ее, а для изменения вам нужно будет обращаться к вашей ссылке на Image
и менять значние ее свойства Color
.
В целом, кэширование компонентов в Unity это практически обязательная практика, так как методы по типу GetComponent<T>()
довольно дорогостоящие и нужно стараться минимизировать их использование в своем проекте.
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
При чтении данных из таблицы (100+ столбцов) выдаёт ошибкуОднако если обратить к другой таблице или уменьшить количество столбцов до 25 всё...
По мотивам своего вопроса Синхронизация Model и ViewModel, когда приложение - Client
Добрый день! Хочу добавить по клику элемент li с данными а к нему кнопку после элемента (есть вторая часть задания, чтобы по клику удалить этот...
Имеется информация в JSON формате получаемая с https://bittrexcom/api/v1