Пожалуй сразу и начнем! Для создания инвентаря ,во-первых ,нужно создать и систему урона...чтобы потом мы смогли со спокойной совестью, надеть(например)наш любимый доспех, для защиты от (например) лучника.... Чтобы нас смогли "убить", мы делаем следующее:"создаем- "Cam1StPerson" (соединяем)Terrain. "SkyBox". "Cam1StPerson" (соединяем)G-Force. "Projectile "-соединяем "галочками"с RigidBody A(желательно поставить для начала шарики,ими мы и будем стрелять) , и ставим тип взаимоотношений"Projectile" попутно соединяем "Projectile" с EventOnInput.... "Заходим" в EventOnInput (который мы соединили с "Projectile",и ставим отношение -Start on Input. Все с Projectile закончили. Беремся за наш RigidBody A ,который мы ранее соединяли с Projectile. Дополнительно соединяем его "галочкой" с (только что созданными EventOnContact)."Заходим" в EventOnContact(который мы соединили с RigidBody A) находим окошко Relationships(взаимоотношения) ,видим что наш RigidBody A "находится" в IGNORE... смело меняем "Игнор" на (взаимоотношение) "MONITOR"(это делается левым нажатием "мыши")...Оставляем в покое "RigidBody A", и беремся за "EventOnContact".Следующими действиями мы соединяем (галочкой) "EventOnContact", с нашей "ходячей камерой" (Cam1StPerson)..."Заходим"в "EventOnContact" , и меняем взаимоотношение (между камерой и нашим EventOnContact) на "MONITOR".Теперь мы создаем "SCRIPT" ,если кто-то боится этого слова, попрошу выдохнуть, ничего заумного мы писать не будем, и я сразу же ,попытаюсь объяснить действие "нашего" скрипта.Но для начала, соединим его галочкой с EventOnContact(который мы создали до этого , надеюсь вы про него не успели забыть*)...Теперь зайдем в EventOnContact ,ну и опять "помучаем" взаимоотношения , и выставим -Start On Input.(напротив скрипта) Примечание-заранее в настройках скрипта, снимите галочку с "WORKING AT START"-это мы сделали для того, чтобы скрипт включался не при запуске игры, а только тогда, когда наш шарик ударит "камеру"(ходячую*) Теперь "зайдем" в скрипт и вобьем следующую "строчку": void Main() { { iObjectStart(OBJ_"номер нужного объекта"); } } Сразу скажу, можно было обойтись без скрипта, но его все же изучать то надо. Теперь пояснение.Вот эта строчка, всего навсего запускает нужный нам объект, но объект не всегда значит предмет, это может быть и "event"(событие)...Я например взял ExitFade,и теперь при ударе "по голове*)" нашим "шариком"(RigidBody A),игра будет "выходить",можно сделать так,чтобы она выходила меню, или сразу же запускала сохранение, или чтоб играла музыка и шли титры,воощем всё, что вашей "душе" угодно.Можно сделать так,чтобы показывались жизни ,и при ударе отнималось определенное колличество , и когда будет совершено нужное количество ударов , "персонаж" умирал, но я сделал "хардкор" ,и он будет умирать при первом же ударе... Убедительная просьба, чтобы сработал EventOnContact,необходимо соединить галочками RigidBody и "камеру" Всё ,с этого момента можно приступать к созданию инвентаря, теперь мы смертны, и нам нужна защита, чтобы ненароком не потерять (например) руку в сражении,или без глаза не остаться. Создаем: Берем ранее созданную Cam1StPerson,создаем дополнительно 2-ва EventOnInput,создаем CamChase(камера должна быть расположена как можно ниже "земли" "террайна", вообщем чтоб мы видели с этой камеры "пустой"вид , или скай бох(SkyBox),и нужно в настройках "камеры" убрать галочку с "RENDERING At START").Соединяем один EventOnInput с Cam1StPerson, а другой с CamChase.Устанавливаем отношения(в EventOnInput) : Cam1StPerson- switch on input CamChase -S/H switch on input кнопку(которая активирет) можете поставить любую ,только она должна быть одинаковой для двух "ивентов"(EventOnInput)-например "С". Теперь при нажатие на кнопку, у вас переключаются камеры, т.е с "ходячей камеры" вы переключаетесь на "неходящую" ,которая ,по-моему совету должна распологаться где то в "космосе".Это надо сделать для удобства, теперь задний вид вы можете определить сами при помощи "Sprite".Во время переключения , наша "ходячая" камера будет неподвижна, но уязвима,следует это учесть. Теперь создаем спрайт(создадим наш задний вид инвентаря).Sprite соединяем с CamChase(галочками) ,в настройках спрайта убираем галочку с "VISIBLE AT START", width/height ставим по 100.Ниже строчки detect mouse over event ,есть "столбики" которые можно менять , ставим "Render as background".И соединяем наш спрайт "галочками" с одним из EventOnInput , которые мы создавали для наших "камер".И ставим взаимоотношения "S/H switch on input".Всё, теперь при нажатие на кнопочку, у нас меняется камера ,и есть задний вид....Теперь нужно создать Спрайт Инвентаря.Создаем Sprite соединяем "галочками"с camechase , в настройках спрайта убираем "галочку" с (VISIBLE AT START),width/height-это размеры спрайты ,выбираем на свой вкус, ставим "Render over texts".И соединяем "галочками" (так же как и прошлый спрайт, с одним из EventOnInput,который мы делали для "камер").И теперь при нажатие на кнопочку ,у нас меняется камера, появляется задний фон, и инвентарь.Уже не плохо!*) Продолжим: вернемся к Cam1StPerson, для начала создадим EventOnLocation(сделайте побольше размеры),SkinMesh("скин меш" следует поставить в область "EventOnLocation") Теперь соединим "галочками" Cam1StPerson и EventOnLocation (поставим взаимосвязь"отношения" -Check for entering (OFFSET 1)). Теперь создадим EventOnInput,в настройках EventOnInput, уберите "галочку с "WORKING AT START"...Соедините EventOnInput с ранее созданным SkinMesh,установите отношения -HIDE ON INPUT(кнопку назначайте отличную от кнопки ,для ранее созданных EventOnInput(которые были созданы для камер) . EventOnInput соедините с EventOnLocation(которую мы раньше соединяли с Cam1StPerson ), и поставьте взаимоотношения -Start On condition. Теперь когда мы подходим к нашему "скин мешу", т.е. мы попадаем в EventOnLocation(ведь "скин меш" должен находится в EventOnLocation), потом мы нажимаем на кнопку ,недавно назначенную , и у нас пропадает "скин меш",создается иллюзия ,как будто мы подобрали предмет. Теперь давайте установим связь с инвентарем(чтобы то, что мы подобрали ,отражалось у нас в инвентаре),для этого создадим спрайт(желательно взять картинку той вещи ,которую мы подбираем) И начинается самое страшное... В настройках спрайта уберите "галочку" с VISIBLE AT START ,поставьте "Render over texts" ну и размеры на свой вкус, теперь создадим EventOnInput в настройках снимите "галочку" с WORKING AT START(ВАЖНО: УСТАНОВИТЕ КНОПКУ (INPUT CONTROL)такую же ,как и для других спрайтов ,которым мы назначали раньше), соедините его (EventOnInput) с ранее созданным спрайтом установите связь -S/H switch on input. Теперь соедините "галочками" этот EventOnInput с другим EventOnInput (который мы делали для SkinMesh(чтобы при нажатии исчезал SkinMesh ,иллюзия того ,как будто мы его взяли)). Теперь в этом EventOnInput(который для SkinMesh) установите связь ,с ранее созданным EventOnInput(для спрайта,вещи) -Start on release. Теперь ,когда мы будем "подбирать" "скин меш" ,у нас в инвентаре будет появляться его иконка(спрайт)(он будет появлятся , только после того, как мы вызовем окно инвентаря) , желательно поместить его в ячейку инвентаря, чтобы было красивее. В ДЕМКЕ СТАНДАРТНЫЕ СПРАЙТЫ И СКИН МЕШИ*)-версия рада 6.50 |