Показать сообщение отдельно
Старый 31.07.2016, 01:24   #23
Foxymist
Нуждающийся
 
Регистрация: 29.06.2016
Сообщений: 80
Написано 28 полезных сообщений
(для 52 пользователей)
Ответ: Mistshift Обучение

Вот что готово;
Немного осваивая ГУИ написал вот такой скрипт ;
using UnityEngine;
using System.Collections;

public class 
NameUnit MonoBehaviour {

    private 
RaycastHit hit;
    public 
string UnitName;
    public 
Color ColorText;
    public 
int UnitHP;
    public 
int HP=0;
    public 
Color ColorHP;
    public 
int UnitEnergy;
    public 
int E=0;
    public 
Color ColorEnergy;
    private 
float distanceVector;
    public 
Transform AlienUnit;

    
void Start () {

    }
    
    
Vector3 TextPos;

    
void OnGUI()
    {

        
TextPos Camera.main.WorldToScreenPoint (transform.position);

    if (
Input.GetKey(KeyCode.Q)) 
       {
     
        
    
GUI.Label (new Rect (TextPos.xScreen.height TextPos.y5050), UnitName);
    
GUI.color Color.black ColorText;
    
GUI.Label (new Rect (TextPos.xScreen.height TextPos.- (20), 5050), "HP:" UnitHP);


        }    
        
//Transform Unit;
        
distanceVector Vector3.Distance (gameObject.transform.position AlienUnit.position);

        if (
distanceVector <2)
        {
        if (
Input.GetKeyDown (KeyCode.F1)) {
            
UnitHP -= 10;
        }

        if (
Input.GetKeyDown (KeyCode.F2)) {
            
UnitEnergy -= 10;
        }


        
//if (Input.GetKeyDown (KeyCode.F3)) {
        //    UnitHP += 10;
        //}
        
        //if (Input.GetKeyDown (KeyCode.F4)) {
        //    UnitEnergy += 10;
        //}
         
}

        
//UnitHP
        
HP UnitHP;

        if (
HP>99){HP=100;}
        if (
HP<1){gameObject.activefalse;}

        
GUI.color Color.black+ColorHP;
        for (
int i 0<HPi=i+1
        
        {
        
            
GUI.Label (new Rect ((TextPos.x+(i)-HP/2), Screen.height TextPos.- (35), 1010), "|");

        }

        
//UnitEnergy
        
UnitEnergy;
        
        if (
E>99){E=100;}
        if (
E<1){E=0UnitEnergy=0;}

        
GUI.color Color.black+ColorEnergy;
        for (
int i 0<Ei=i+1
            
        {
            
            
GUI.Label (new Rect ((TextPos.x+(i)-E/2), Screen.height TextPos.- (30), 1010), "|");
            
        }

    }

    
void Update () 
    {
    
    }

Появилось ХП и Энергия чтобы отнять нужно чтобы зеленый маркер находился рядом c юнитом. “F1” отнять ХП “F2” отнять Энергию.
“Q” подробности. Юнит исчезает если HP=0

Теперь надо обернуть всё в базовый класс ну ООП вобщем…

Немного разобрался с ГУИ.

На скриншоте с зажатой “Q” подробности.

Миниатюры
Нажмите на изображение для увеличения
Название: 01.png
Просмотров: 895
Размер:	409.4 Кб
ID:	22450  Нажмите на изображение для увеличения
Название: Untitled - 2.png
Просмотров: 700
Размер:	264.9 Кб
ID:	22451  
Вложения
Тип файла: rar Mistshift.rar (7.81 Мб, 511 просмотров)
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
St_AnGer (31.07.2016)