Суббота, 20 Апреля 2024, 07:04

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Форум игроделов » Движки для разработки игр и сложные системы разработки » Unity » Как сделать холодное оружие. (Можноли такое.)
Как сделать холодное оружие.
igrodel500Дата: Среда, 14 Ноября 2012, 15:10 | Сообщение # 1
участник
Сейчас нет на сайте
Можно ли сделать в unity 3d холодное оружие, а то я весь гугл "перевернул верх тормашками" не нашёл.

EchoITДата: Среда, 14 Ноября 2012, 15:34 | Сообщение # 2
старожил
Сейчас нет на сайте
Quote
Можно ли

Можно.



Долгожданный анонсик: 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)
Да и что значит кидай луч.

Это математика cool Столкновения луча с объектом (противником)...
igrodel500Дата: Среда, 14 Ноября 2012, 15:43 | Сообщение # 5
участник
Сейчас нет на сайте
Будто я когда нибудь создавал колижен.



Сообщение отредактировал igrodel500 - Среда, 14 Ноября 2012, 15:43
divol13Дата: Среда, 14 Ноября 2012, 18:31 | Сообщение # 6
участник
Сейчас нет на сайте
я считаю нужно сначала создать горячее оружие, а потом охладить его до нужной температуры. Как-то так, если по просотому...

EchoITДата: Среда, 14 Ноября 2012, 18:40 | Сообщение # 7
старожил
Сейчас нет на сайте
Quote
я считаю нужно сначала создать горячее оружие, а потом охладить его до нужной температуры. Как-то так, если по просотому...

Ну так и получается: сначала его куют, когда оно ещё горячее, а потом охлаждают(в бочку с холодной водой, к примеру, или просто лежит остывает). happy

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;
   }
}

Код писал прямо тут, так что не уверен, что он без ошибок. smile


Долгожданный анонсик: State of War
SEvgДата: Среда, 14 Ноября 2012, 18:48 | Сообщение # 8
Алхимик
Сейчас нет на сайте
Quote (divol13)
я считаю нужно сначала создать горячее оружие, а потом охладить его до нужной температуры. Как-то так, если по просотому...

Так не качественно выйдет, нужно много кратно проковать и закалить, а в конце отпуск, чтоб с хрупкостью металла справиться biggrin
falcowareДата: Среда, 14 Ноября 2012, 18:52 | Сообщение # 9
старожил
Сейчас нет на сайте
igrodel500, я знаю как сделать холодное оружие!

1. Делаем оружие.
2. Ложим в морозильник.

3. Через 2 часа холодное оружие готово! biggrin
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 для тех кто не знает или просто здоровье.

Шутишь что-ле? biggrin
80% игр используют такую переменную(в которых вообще есть такое понятие, как здоровье), я в этом уверен. smile


Долгожданный анонсик: 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)
Ахахахахаха(качусь по полу).

Действительно улыбнуло. biggrin
Серьезно ищешь такие вещи? Если да тогда срочно срочно, забивать голову умом. Головой думать чем меч отличается от пистолета? Колизией. Как сделать способов тоже много. Можно сделать готовую колизию по траектории, а можно пускать луч к кончику меча.


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, Зачем ты ему помогаешь быдлокодить. Ну какой дурак делает оружие коллайдерами? biggrin
igrodel500, Я за тебя весь код написал, а ты его даже не можешь его нормально вставить себе в игру. facepalm
Quote
Скрипт C# не может брать денные из скрипта JavaScript.

Так ты пытался получить данные из Health.js? lol


Долгожданный анонсик: 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
Форум игроделов » Движки для разработки игр и сложные системы разработки » Unity » Как сделать холодное оружие. (Можноли такое.)
  • Страница 1 из 1
  • 1
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг