Как сделать хедшот? - Форум Игроделов
Чт, 09 Май 2024, 00:32 
 
Приветствую Вас Гость Главная | Регистрация | Вход
Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Форум Игроделов » UNITY3D » ОБЩИЕ ВОПРОСЫ » Как сделать хедшот?
Как сделать хедшот?
IsumbosiДата: Вс, 01 Ноя 2015, 01:20 | Сообщение # 1
Нет аватара
 
Сообщений: 7
Награды: 0
Репутация: 0
Статус: Offline
Здравствуйте. Расскажите кто-нибудь пожалуйста как реализуется система при которой враг теряет разное количество
НР в зависимости от того в какую из частей его тела попала пуля (в моем случае луч), например в голову -100 НР, в тело -50, в руку -20 и т.д.
Скрипт стрельбы (и получения урона врагом) у меня такой:

Код
using UnityEngine;
using System.Collections;

public class Shoot : MonoBehaviour {
       
        void Update () {
                Ray ray1 = Camera.main.ScreenPointToRay(new Vector3(Screen.width / 2,Screen.height / 2));
                RaycastHit hit1;
                if (Input.GetMouseButtonDown (0))
                {
                        if (Physics.Raycast (ray1, out hit1,1000f))
                        {                            
                    GameObject enemy = hit1.collider.gameObject;
                    if (enemy.tag == "enemy"){
                    enemy.GetComponent<HealthScript>().hp -= 30;
                    }
                        }
            }
  }
}
 
СообщениеЗдравствуйте. Расскажите кто-нибудь пожалуйста как реализуется система при которой враг теряет разное количество
НР в зависимости от того в какую из частей его тела попала пуля (в моем случае луч), например в голову -100 НР, в тело -50, в руку -20 и т.д.
Скрипт стрельбы (и получения урона врагом) у меня такой:

Код
using UnityEngine;
using System.Collections;

public class Shoot : MonoBehaviour {
       
        void Update () {
                Ray ray1 = Camera.main.ScreenPointToRay(new Vector3(Screen.width / 2,Screen.height / 2));
                RaycastHit hit1;
                if (Input.GetMouseButtonDown (0))
                {
                        if (Physics.Raycast (ray1, out hit1,1000f))
                        {                            
                    GameObject enemy = hit1.collider.gameObject;
                    if (enemy.tag == "enemy"){
                    enemy.GetComponent<HealthScript>().hp -= 30;
                    }
                        }
            }
  }
}

Автор - Isumbosi
Дата добавления - 01 Ноя 2015 в 01:20
VolkOrievithДата: Сб, 28 Ноя 2015, 15:54 | Сообщение # 2
Нет аватара
 
Сообщений: 222
Награды: 0
Репутация: 53
Статус: Offline
Делаешь так:
-Скрипт стрельбы (на игроке)
-Скрипт получения дамага (на коллайдере)
-Скрипт - счетчик дамага (на персонаже)

Скрипт стрельбы: стреляет (либо спаунит пулю, которая летит, втыкается в коллайдер, ищет там скрипт получения дамага, сообщает ему урон, либо просто рейкастом от дула оружия ищем коллайдер со скриптом получения дамага, сообщаем урон).
Скрипт получения дамага: Если получил дамаг, то сообщаем его скрипту-счетчику дамага, умножая на некую переменную (как раз та разница, которая Вам нужна)
Скрипт-счетчик дамага: Если получаем дамаг, то отнимаем жизни. Ели жизни меньше нуля, умираем.

Проверенный метод, всегда его использую, как говорится, в любой непонятной ситуации)


Сообщение отредактировал VolkOrievith - Сб, 28 Ноя 2015, 15:54
 
СообщениеДелаешь так:
-Скрипт стрельбы (на игроке)
-Скрипт получения дамага (на коллайдере)
-Скрипт - счетчик дамага (на персонаже)

Скрипт стрельбы: стреляет (либо спаунит пулю, которая летит, втыкается в коллайдер, ищет там скрипт получения дамага, сообщает ему урон, либо просто рейкастом от дула оружия ищем коллайдер со скриптом получения дамага, сообщаем урон).
Скрипт получения дамага: Если получил дамаг, то сообщаем его скрипту-счетчику дамага, умножая на некую переменную (как раз та разница, которая Вам нужна)
Скрипт-счетчик дамага: Если получаем дамаг, то отнимаем жизни. Ели жизни меньше нуля, умираем.

Проверенный метод, всегда его использую, как говорится, в любой непонятной ситуации)

Автор - VolkOrievith
Дата добавления - 28 Ноя 2015 в 15:54
Форум Игроделов » UNITY3D » ОБЩИЕ ВОПРОСЫ » Как сделать хедшот?
  • Страница 1 из 1
  • 1
Поиск:
Загрузка...

Game Creating CommUnity © 2009 - 2024