Извините, ничего не найдено.

Не расстраивайся! Лучше выпей чайку!
Регистрация
Справка
Календарь

Вернуться   forum.boolean.name > Программирование игр для компьютеров > Unity

Unity Мультиплатформенный инструмент для разработки игр

Ответ
 
Опции темы
Старый 22.11.2020, 14:34   #1
Evgen
Разработчик
 
Аватар для Evgen
 
Регистрация: 12.01.2011
Адрес: Moscow
Сообщений: 419
Написано 68 полезных сообщений
(для 100 пользователей)
Можно ли добавить свой метод в UnityEngine.Random с помощью ExtensionMethods

Вобщем нужно добавить свой метод в класс Random

Пробую так:
public static class ExtensionMethods {

	public static void MySeed(this Random rnd, int seed){
		Random.seed = seed % 100;
	}

}
Компилер пишет:

error CS0117: `UnityEngine.Random' does not contain a definition for `MySeed'

Random является sealed классом может в этом ошибка?

При этом с Color32, String и т.д. этот трюк проходит.

Последний раз редактировалось Evgen, 22.11.2020 в 21:04.
(Offline)
 
Ответить с цитированием
Старый 22.11.2020, 15:29   #2
Антихрист
Разработчик
 
Регистрация: 20.01.2007
Сообщений: 485
Написано 182 полезных сообщений
(для 412 пользователей)
Ответ: Можно ли добавить свой метод в UnityEngine.Random с помощью ExtensionMethods

А extension метод пытаешься вызвать на инстансе рандома?
UnityEngine.Random r = new UnityEngine.Random();
r.MySeed(100);
У меня без ошибок
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
Evgen (22.11.2020)
Старый 22.11.2020, 15:31   #3
Andvrok
Бывалый
 
Регистрация: 26.07.2009
Сообщений: 785
Написано 362 полезных сообщений
(для 995 пользователей)
Ответ: Можно ли добавить свой метод в UnityEngine.Random с помощью ExtensionMethods

Предполагаю, что ты пытаешься вызвать Random.MySeed() потом, т.к. у рандома методы статические все, но в таком случае это не прокатит. Экстеншены для того, с чего можно сделать экземпляр; код ниже прокатит, например:

var rnd = new Random();
rnd.MySeed(100); 
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
Evgen (22.11.2020)
Старый 22.11.2020, 21:02   #4
Evgen
Разработчик
 
Аватар для Evgen
 
Регистрация: 12.01.2011
Адрес: Moscow
Сообщений: 419
Написано 68 полезных сообщений
(для 100 пользователей)
Ответ: Можно ли добавить свой метод в UnityEngine.Random с помощью ExtensionMethods

Сообщение от Антихрист Посмотреть сообщение
метод пытаешься вызвать на инстансе рандома
Сообщение от Andvrok Посмотреть сообщение
Экстеншены для того, с чего можно сделать экземпляр
Да так и есть... т.к. у Random все методы статические я решил что можно так сделать.
Если создать экземпляр то все работает.
(Offline)
 
Ответить с цитированием
Ответ


Опции темы

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


Часовой пояс GMT +4, время: 12:54.


vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot
Style crйe par Allan - vBulletin-Ressources.com