Ответ: Передача переменной в метод
seaman ты передаешь числа, а надо передавать переменные и их менять. В params по ref не передать. И так как надо делать это для разного количества - достаточно простого массива, а не params, потому что не будешь же ты для каждого случая вызывать свою версию метода - то от чего хочет отказаться EvilOkta
|
Ответ: Передача переменной в метод
А вернуть IEnumerable можно. Типа:
Код:
int[]Check(params int[] inp) int[] bA = Check(b, c); |
Ответ: Передача переменной в метод
Проблема не в этом. Проблема в том, что ему надо будет вызывать метод различными способами (с различным числом параметров), а это не нужно.
Я вообще его не очень понял, почему например для каждого найденного значения не вызвать функцию один раз, зачем в нее передавать все что надо обработать... |
Ответ: Передача переменной в метод
Ну я тоже не очень понял обсуждения. Просто привел пример как передавать разное число параметров в одну функцию.
|
Ответ: Передача переменной в метод
наверное слишком сумбурно объяснил, задача так поставлена потому что юнитом через этот скрипт планируется управлять как игроком так и ИИ.
Вообще при малом количестве параметров действительно подойдет switch/case. Сейчас попробую поподробнее объяснить, возможно и правда проблема в том что я слишком все осложняю. Игра пошаговая (типа incubation) юнит передвигается по квадратному полю с помощью одного и того же метода. Команда на направление движения устанавливает центр привязки юнита, вокруг которого он "перекатывается" на соседнее поле. Есть две переменные отвечающие за его текущий поворот, имеется ввиду не физический поворот, а некоторые значения которые меняются при перемещении (это краеугольная концепция игры). При перемещении в одну сторону меняется одна переменная, в другую вторая и т.п. Задача при инициализации движения передавать в метод именно ту переменную которую требуется обработать и вернуть ее измененное значение. При расширении скрипта (и написании ИИ) возникнет необходимость передавать и другие параметры для изменения. Так как игра тактического характера то при разном расположении и повороте юнита он будет иметь разные тактические параметры - это я и хотел реализовать в обработчике движения. Если управляет игрок то довольно просто - он мышкой прокладывает маршрут по полю, анализатор запаковывает маршрут в команду, понятную методу перемещения и метод начинает перемещать юнит по маршруту, попутно изменяя его текущие параметры. Если юнитом управляет ИИ, то до прокладки маршрута в действие вступате блок логики, анализирующий текущую ситуацию на поле, параметры и расположение юнитов и т.п. (тут кстати в этом блоке мне тоже бы пригодилась методика передачи/приема переменных или аналоги), и этот блок логики по результатам анализа так же формирует маршрут и отдает его методу перемещения. Еще один момент, помимо перемещения юнита метод так же управляет его активными действиями, т.е. например "атака", "защита" и т.п. (образно говорю), поэтому и стоит задача унификация метода и отделение его от метода прокладки маршрута/действий. Кстати насчет интерфейсов, немного не понял идею, это как? |
Ответ: Передача переменной в метод
PHP код:
UPD: поправил немного код, забыл class написать и в интерфейсе была ошибка |
Ответ: Передача переменной в метод
Цитата:
|
Ответ: Передача переменной в метод
Цитата:
|
Ответ: Передача переменной в метод
Цитата:
|
Ответ: Передача переменной в метод
Как и в жизни - одна мать может родить кучу детей у которых будет ее наследственность. А учителя (интерфейсы) могут придать любому ребенку новые черты, не унаследованные от матери. Интерфейс может придать эти новые черты любому числу классов. Все они будут обладать неким общим набором свойств. И родители у этих классов могут быть разные.
|
Ответ: Передача переменной в метод
Цитата:
А вот такой вопрос - при наследовании класса, его свойства наследует класс-потомок или конкретный экземпляр класса-потомка при создании? Т.е. описывая класс-конструктор уже можно пользоваться свойствами базового класса? |
Ответ: Передача переменной в метод
Не понял про класс конструктор, все экземпляры наследника имеют доступ к публичными и защищенным членам базового класса. Причем могут их переопределять, если они объявлены как виртуальные или абстрактные.
|
Ответ: Передача переменной в метод
да, порылся в справке, понял что задал глупый вопрос.
Попробую реализовать интерфейсами, мне кажется это будет более гибкая структура.. а get и set что определяет? сигнатуру метода переданного интерфейсу? |
Ответ: Передача переменной в метод
Полезно будет почитать про свойства http://msdn.microsoft.com/ru-ru/library/x9fsa0sw.aspx
|
Ответ: Передача переменной в метод
Хотел узнать еще вот что (конечно понимаю что мои вопросы звучат совсем по ламерски но я видимо упускаю какие-то концепциии ООП, а точнее их реализации в Unity)
На старом примере немного непонятно взаимодействие классов и интерфейсов: Если классы объявляются в разных скриптах, на разных GameObject (например на объекте игрока один скрипт, на враге другой) в одном соответственно объявляю класс User в другом AI, оба являются наследниками класса Unit - вот где этот базовый класс должен быть объявлен, чтобы оба класса наследника до него дотянулись? или без разницы? Как в таком случае проектировать архитектуру программы - в какой момент инициализируется связи между классами? Я понимаю так, что при запуске программы должен запуститься какой-то базовый скрипт, в котором и будет объявлены все наследуемые классы и интерфейсы, но не могу понять как это происходит в отдельных независимых скриптах. Или концепция ООП позволяет при запуске одного из скриптов получить все связи наследования из других. Логику построения проекта на простом примере понимаю - взаимодействие скриптов происходит в момент наступление какого-то событие (пересечение с лучом, попадание в коллайдер и т. п.), а вот как быть с такими межскриптовыми связями наследования так и не понял, ведь каждый скрипт наследуется от monobehaviour а значит из за линейного наследования классы наследуются в пределах одного скрипта. Тогда как определить общий интерфейс который действует из разных скриптов с общим методом одного из классов конкретного скрипта? |
Часовой пояс GMT +4, время: 09:59. |
vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot