Синтаксис:
Используется csharp
//атака игрока с нанесением урона Enemy
using UnityEngine;
using System.Collections;
public class PlayerAttack : MonoBehaviour {
// Определение публичных переменных
public GameObject target; //Цель игрока
void Start () {
}
// Цикл на каждый кадр
void Update () {
//По нажатию клавиши F на клавиатуре происходит атака Enemy
if(Input.GetKeyUp(KeyCode.F)){
Attack();
}
}
//Атака Enemy
private void Attack(){
Debug.Log("Player attacking");
//У цели Enemy ищем компонент с именем EnemyHealth - скрипт
EnemyHealth eh = (EnemyHealth)target.GetComponent("EnemyHealth");
//и используя его метод изменения состояния здоровья
//(необходимо переписать AddjustCurrentHealth с учетом новых требований)
eh.AddjustCurrentHealth(-10);
}
}
using UnityEngine;
using System.Collections;
public class PlayerAttack : MonoBehaviour {
// Определение публичных переменных
public GameObject target; //Цель игрока
void Start () {
}
// Цикл на каждый кадр
void Update () {
//По нажатию клавиши F на клавиатуре происходит атака Enemy
if(Input.GetKeyUp(KeyCode.F)){
Attack();
}
}
//Атака Enemy
private void Attack(){
Debug.Log("Player attacking");
//У цели Enemy ищем компонент с именем EnemyHealth - скрипт
EnemyHealth eh = (EnemyHealth)target.GetComponent("EnemyHealth");
//и используя его метод изменения состояния здоровья
//(необходимо переписать AddjustCurrentHealth с учетом новых требований)
eh.AddjustCurrentHealth(-10);
}
}
А вот второй код
Синтаксис:
Используется csharp
// Выводит бар, показывающий состояние здоровье
using UnityEngine;
using System.Collections;
public class EnemyHealth : MonoBehaviour {
//публичные переменые для настроек
public int maxHealth = 100;
//блок переменных локального пользователя
private int _curHealth = 100;
private float healthBarLenght;
//производятся начальные расчеты при создании объекта
void Start () {
//задаем начальную ширину бара здоровья
healthBarLenght = Screen.width /2;
//Предотврощает ввод неправильного значения
//максимального здоровья
if(maxHealth<1) maxHealth=1;
}
void Update () {
AddjustCurrentHealth(_curHealth);
}
void OnGUI () {
// Выводит сам бар посредством графического интерфейса
GUI.Box(new Rect(10,40,healthBarLenght,20),_curHealth + "/" + maxHealth);
}
// производим расчет нужной ширины бара
public void AddjustCurrentHealth( int adj){
_curHealth = adj;
//блок по предотвращению получению неверного состояния здоровья
//меньше нуля и больше максимума
//так как изменяем здоровье из вне
if(_curHealth < 0) _curHealth =0;
if(_curHealth > maxHealth) _curHealth = maxHealth;
//Расчет бара непосредственно
healthBarLenght = (Screen.width / 2) * (_curHealth / (float)maxHealth);
}
}