Здравствуйте. Расскажите кто-нибудь пожалуйста как реализуется система при которой враг теряет разное количество НР в зависимости от того в какую из частей его тела попала пуля (в моем случае луч), например в голову -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; } } } } }
Делаешь так: -Скрипт стрельбы (на игроке) -Скрипт получения дамага (на коллайдере) -Скрипт - счетчик дамага (на персонаже)
Скрипт стрельбы: стреляет (либо спаунит пулю, которая летит, втыкается в коллайдер, ищет там скрипт получения дамага, сообщает ему урон, либо просто рейкастом от дула оружия ищем коллайдер со скриптом получения дамага, сообщаем урон). Скрипт получения дамага: Если получил дамаг, то сообщаем его скрипту-счетчику дамага, умножая на некую переменную (как раз та разница, которая Вам нужна) Скрипт-счетчик дамага: Если получаем дамаг, то отнимаем жизни. Ели жизни меньше нуля, умираем.
Проверенный метод, всегда его использую, как говорится, в любой непонятной ситуации)
Сообщение отредактировал VolkOrievith - Сб, 28 Ноя 2015, 15:54