Как сделать холодное оружие.
| |
igrodel500 | Дата: Среда, 14 Ноября 2012, 15:10 | Сообщение # 1 |
участник
Сейчас нет на сайте
| Можно ли сделать в unity 3d холодное оружие, а то я весь гугл "перевернул верх тормашками" не нашёл.
|
|
| |
EchoIT | Дата: Среда, 14 Ноября 2012, 15:34 | Сообщение # 2 |
старожил
Сейчас нет на сайте
| Можно.
Долгожданный анонсик: State of War
Сообщение отредактировал EchoIT - Среда, 14 Ноября 2012, 15:34 |
|
| |
igrodel500 | Дата: Среда, 14 Ноября 2012, 15:36 | Сообщение # 3 |
участник
Сейчас нет на сайте
| А если другой игрок то надо что то с этим делать? Добавлено (14.11.2012, 15:36) --------------------------------------------- Если прикрипить меч к персу то у него начнут убавлятся хит поинты. Тогда предётся отодвигать на несколько метров. Добавлено (14.11.2012, 15:36) --------------------------------------------- Да и что значит кидай луч.
|
|
| |
SEvg | Дата: Среда, 14 Ноября 2012, 15:41 | Сообщение # 4 |
Алхимик
Сейчас нет на сайте
| Quote (igrodel500) Да и что значит кидай луч. Это математика Столкновения луча с объектом (противником)...
|
|
| |
igrodel500 | Дата: Среда, 14 Ноября 2012, 15:43 | Сообщение # 5 |
участник
Сейчас нет на сайте
| Будто я когда нибудь создавал колижен.
Сообщение отредактировал igrodel500 - Среда, 14 Ноября 2012, 15:43 |
|
| |
divol13 | Дата: Среда, 14 Ноября 2012, 18:31 | Сообщение # 6 |
участник
Сейчас нет на сайте
| я считаю нужно сначала создать горячее оружие, а потом охладить его до нужной температуры. Как-то так, если по просотому...
|
|
| |
EchoIT | Дата: Среда, 14 Ноября 2012, 18:40 | Сообщение # 7 |
старожил
Сейчас нет на сайте
| Quote я считаю нужно сначала создать горячее оружие, а потом охладить его до нужной температуры. Как-то так, если по просотому... Ну так и получается: сначала его куют, когда оно ещё горячее, а потом охлаждают(в бочку с холодной водой, к примеру, или просто лежит остывает).
Quote Если прикрипить меч к персу то у него начнут убавлятся хит поинты. Так убери этот быдлокодерский скрипт, и сделай так(к примеру): Code public int Reload=0; void Update() { Reload++; if (Input.GetMouseButtonDown(0) && Reload>150) { Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition); //Проверку взял из справки, влом для тебя отдельную писать. Правильно будет работать только при том, что курсор всегда в центре (Screen.lockCursor=true;) RaycastHit hit; if (Physics.Raycast(ray, out hit, 10)) { //10 - дистанция. Экспериментируй. if (hit.collider.tag=="Player") { //Если тег объекта, с которым столкнулся луч - Player, то берем скрипт с хп. Можно сделать проверку на существование скрипта на объекте(if hit.collider.GetComponent<Скрипт с ХП>()!=null или как-то так), как хочешь. hit.collider.GetComponent<Скрипт с ХП>().HP-=25; // Берем у другого объекта переменную HP из скрипта, в котором она находится и отнимаеи 25(поменяй на нужное) } Reload=0; } } Код писал прямо тут, так что не уверен, что он без ошибок.
Долгожданный анонсик: State of War
|
|
| |
SEvg | Дата: Среда, 14 Ноября 2012, 18:48 | Сообщение # 8 |
Алхимик
Сейчас нет на сайте
| Quote (divol13) я считаю нужно сначала создать горячее оружие, а потом охладить его до нужной температуры. Как-то так, если по просотому... Так не качественно выйдет, нужно много кратно проковать и закалить, а в конце отпуск, чтоб с хрупкостью металла справиться
|
|
| |
falcoware | Дата: Среда, 14 Ноября 2012, 18:52 | Сообщение # 9 |
старожил
Сейчас нет на сайте
| igrodel500, я знаю как сделать холодное оружие!
1. Делаем оружие. 2. Ложим в морозильник.
3. Через 2 часа холодное оружие готово!
|
|
| |
igrodel500 | Дата: Среда, 14 Ноября 2012, 19:22 | Сообщение # 10 |
участник
Сейчас нет на сайте
| Ахахахахаха(качусь по полу). Quote 1. Делаем оружие. 2. Ложим в морозильник.
3. Через 2 часа холодное оружие готово! Улыбнул.Добавлено (14.11.2012, 19:22) --------------------------------------------- EchoIT, а как ты угадал переменную hp точь в точь как у меня HP-Hit Points для тех кто не знает или просто здоровье.
|
|
| |
EchoIT | Дата: Среда, 14 Ноября 2012, 19:23 | Сообщение # 11 |
старожил
Сейчас нет на сайте
| Quote EchoIT, а как ты угадал переменную hp точь в точь как у меня HP-Hit Points для тех кто не знает или просто здоровье. Шутишь что-ле? 80% игр используют такую переменную(в которых вообще есть такое понятие, как здоровье), я в этом уверен.
Долгожданный анонсик: State of War
|
|
| |
igrodel500 | Дата: Среда, 14 Ноября 2012, 19:43 | Сообщение # 12 |
участник
Сейчас нет на сайте
| Странно скрипт пишет ошибку в строчке hit.collider.GetComponent<Health>().HP-=25; В скрипте health.
Добавлено (14.11.2012, 19:25) --------------------------------------------- Code var HP : int; var CurHP : int; public var HPGUI : GUIStyle;
function Start(){ HP = 100; CurHP = HP; }
function Update(){ if(HP == 0){ Destroy(gameObject); } }
function OnCollisionEnter(Col:Collision){ if(Col.gameObject.name == "Sword" && Col.gameObject.name == "Player"){ HP -= 15; } }
function OnGUI(){ GUI.Label(new Rect(Screen.width / 2, 0, 50, 20),"HP:"+HP,HPGUI); }
Добавлено (14.11.2012, 19:26) --------------------------------------------- Код стал таким. Code var HP : int; var CurHP : int; public var HPGUI : GUIStyle;
function Start(){ HP = 100; CurHP = HP; }
function Update(){ if(HP == 0){ Destroy(gameObject); } }
function OnGUI(){ GUI.Label(new Rect(Screen.width / 2, 0, 50, 20),"HP:"+HP,HPGUI); }
Добавлено (14.11.2012, 19:28) --------------------------------------------- The type or namespace name `Health' could not be found. Are you missing a using directive or an assembly reference?Добавлено (14.11.2012, 19:33) --------------------------------------------- Кстате ах да скрипт писался на javascript в unity. Добавлено (14.11.2012, 19:35) --------------------------------------------- Могу попробывать переделать под C#. Добавлено (14.11.2012, 19:38) --------------------------------------------- А вот и код на C#. Code
using UnityEngine; using System.Collections;
public class Health : MonoBehaviour { int HP; int CurHP; public GUIStyle HPGUI; // Use this for initialization void Start () { HP = 100; CurHP = HP; } // Update is called once per frame void Update () { if(HP == 0){ Destroy(gameObject); } } void OnGUI(){ GUI.Label(new Rect(Screen.width / 2, 0, 50, 20),"HP:"+HP,HPGUI); } } Добавлено (14.11.2012, 19:43) --------------------------------------------- `Health.HP' is inaccessible due to its protection level
Сообщение отредактировал igrodel500 - Среда, 14 Ноября 2012, 19:32 |
|
| |
divol13 | Дата: Среда, 14 Ноября 2012, 19:59 | Сообщение # 13 |
участник
Сейчас нет на сайте
| я не силен, конечно в C#, но что-то говорит мне, о том, что неплохо бы и HP сделать public
|
|
| |
Kira | Дата: Среда, 14 Ноября 2012, 20:17 | Сообщение # 14 |
заслуженный участник
Сейчас нет на сайте
| hit.collider.GetComponent<Health>().HP-=25; этой строчки я не увидел. Я конечно давно не программировал в юне, но почему то не пойму этой строчки. Чего ты делаешь? Твой код не понятен мне.
function OnCollisionEnter(Col:Collision){ if(Col.gameObject.name == "Sword" && Col.gameObject.name == "Player"){ HP -= 15; }
&& этож логическое И. как тогда можно получить сразу 2 колизии когда ты получаешь только 1ну?
Смотри: Code function OnCollisionEnter(Col:Collision){ if( Col.gameObject.name == "Player"){ Col.gameObject.HP -= 15; }
Я могу ошибаться но примерно так.Добавлено (14.11.2012, 20:17) ---------------------------------------------
Quote (igrodel500) Можно ли сделать в unity 3d холодное оружие, а то я весь гугл "перевернул верх тормашками" не нашёл. Quote (igrodel500) Ахахахахаха(качусь по полу). Действительно улыбнуло. Серьезно ищешь такие вещи? Если да тогда срочно срочно, забивать голову умом. Головой думать чем меч отличается от пистолета? Колизией. Как сделать способов тоже много. Можно сделать готовую колизию по траектории, а можно пускать луч к кончику меча.
Unity3d разработчик на С#. Лучшее спасибо + в репу. "Безумие: делать одно и то же снова и снова, и ждать при этом разных результатов". "Человек, который никогда не ошибался никогда не пробовал ничего нового". "Если человек может спокойно управлять автомобилем во время поцелуя красивой девушки, значит он уделяет поцелую недостаточно внимания”. Альберт Эйнштейн
|
|
| |
igrodel500 | Дата: Четверг, 15 Ноября 2012, 11:42 | Сообщение # 15 |
участник
Сейчас нет на сайте
| Kira, я в коде ещё вчера разобрался и убрал Code function OnCollisionEnter(Col:Collision){ if( Col.gameObject.name == "Player"){ Col.gameObject.HP -= 15; } но потом ещё заметил что одна и та же ошибка и переделал код под C#. Я сделал такой вывод. Скрипт C# не может брать денные из скрипта JavaScript.
|
|
| |
EchoIT | Дата: Четверг, 15 Ноября 2012, 13:54 | Сообщение # 16 |
старожил
Сейчас нет на сайте
| Kira, Зачем ты ему помогаешь быдлокодить. Ну какой дурак делает оружие коллайдерами? igrodel500, Я за тебя весь код написал, а ты его даже не можешь его нормально вставить себе в игру. Quote Скрипт C# не может брать денные из скрипта JavaScript. Так ты пытался получить данные из Health.js?
Долгожданный анонсик: State of War
Сообщение отредактировал EchoIT - Четверг, 15 Ноября 2012, 13:54 |
|
| |
Kira | Дата: Четверг, 15 Ноября 2012, 14:16 | Сообщение # 17 |
заслуженный участник
Сейчас нет на сайте
| Quote (EchoIT) Kira, Зачем ты ему помогаешь быдлокодить. Ну какой дурак делает оружие коллайдерами? Что то я не понимаю, мне не пришлось дойти до данного этапа, не прет мне на контент :(. А если знаешь что, тогда чего молчишь ? расскажи почему не делают колайдерами ?
Unity3d разработчик на С#. Лучшее спасибо + в репу. "Безумие: делать одно и то же снова и снова, и ждать при этом разных результатов". "Человек, который никогда не ошибался никогда не пробовал ничего нового". "Если человек может спокойно управлять автомобилем во время поцелуя красивой девушки, значит он уделяет поцелую недостаточно внимания”. Альберт Эйнштейн
|
|
| |
EchoIT | Дата: Четверг, 15 Ноября 2012, 14:30 | Сообщение # 18 |
старожил
Сейчас нет на сайте
| Quote А если знаешь что, тогда чего молчишь ? расскажи почему не делают колайдерами ? ЛОЛ! Я молчу? Я ему тут уже все расписал и скрипт написал. Коллайдерами делать - это идиотизм. Как минимум по той причине, которую описал ТС.
Долгожданный анонсик: State of War
|
|
| |
|