forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   Unity (http://forum.boolean.name/forumdisplay.php?f=144)
-   -   Фак по Юнити. (http://forum.boolean.name/showthread.php?t=12966)

Lestar 19.07.2011 02:54

Ответ: Фак по Юнити.
 
Например сохранение уровня
PHP код:

PlayerPrefs.SetInt("Lvl"5); 

Чтение сохраненных данных
PHP код:

int _start_Level=PlayerPrefs.GetInt("Lvl"); 


SaM_ 20.07.2011 20:02

Ответ: Фак по Юнити.
 
При создании hud'a столкнулся с такой проблемой. Есть показатель очков и рамка в которой он должен быть. Но рамка находится на один уровень выше, чем gui с очками, поэтому заслоняет их. Как исправить?

Taugeshtu 20.07.2011 20:04

Ответ: Фак по Юнити.
 
Цитата:

Как исправить?
Если не ошибаюсь - z-координата у Transform.

Lestar 20.07.2011 20:05

Ответ: Фак по Юнити.
 
Использовать GUI.depth .

SaM_ 20.07.2011 21:21

Ответ: Фак по Юнити.
 
Lestar, спасибо.

А как тексту присвоить свой шрифт?
Вот есть такой скрипт, как обозначить font, что бы текст его принял?
PHP код:

var color Color Color(0.20.30.4);
         

    var 
myFont : ???;


    static var 
guiDepth int 1;
    function 
OnGUI() {
    
GUI.depth guiDepth;
        

     ??? = 
myFont;


    
GUI.color color;
    
guiDepth 1;
            
Hud1.guiDepth 0;
        (
GUI.Label(Rect(100,485,300,300), "" ScoreSystem.myScore)) ;
      
        } 


Lestar 20.07.2011 23:07

Ответ: Фак по Юнити.
 
Asssets->Creata->GUI Skin

Настроить скин.

В коде:
PHP код:

var skin1 GUISkin;

function 
OnGUI()
{
 
GUI.skin skin1;
 
Бла бла


В инспекторе указать скин.
Или работать для каждого конкретного текста со стилями.
PHP код:

var style1 GUIStyle;
function 
OnGUI()
{
GUI.Label(Rect(100,485,300,300), "" ScoreSystem.myScore,style1) ;


Стиль тоже настроить.

SaM_ 21.07.2011 01:53

Ответ: Фак по Юнити.
 
Благодарю, воспользовался вторым способом.

SaM_ 30.07.2011 17:00

Ответ: Фак по Юнити.
 
Как сделать, что бы при столкновении двух объектов один удалялся, а на его месте появлялся другой?

Lestar 30.07.2011 18:29

Ответ: Фак по Юнити.
 
Повесить на обьект который нужно подменить
PHP код:

using UnityEngine;
using System.Collections;

public class 
ObjFirst ObjTwo
{

    
void OnCollisionEnter()
    {
       
Change_Obj(gameObject);
    }


Скрипт повесить куда нибудь
PHP код:

using UnityEngine;
using System.Collections;

public class 
ObjTwo MonoBehaviour {

    public 
GameObject _new_Obj;

 public 
void Change_Obj(GameObject _obj)
    {
        
Vector3 _position _obj.transform.position;
        
Quaternion _rotation _obj.transform.rotation;
        
Destroy(_obj);
        
Instantiate(_new_Obj_position_rotation);
    }


На один из сталкивающихся обьектов добавить регидбоди.

SaM_ 31.07.2011 13:53

Ответ: Фак по Юнити.
 
Вот у меня есть изображения заполненной полосы здоровья и пустой.
Как сделать, что бы заполненная полоса, постепенно сокращалась, в зависимости от очков здоровья?
Сама система здоровья уже имеется, но выводится на экран в виде чисел, максимальное значение 20, минимальное -1.

Lestar 31.07.2011 15:14

Ответ: Фак по Юнити.
 
PHP код:

float _live;// Реалтайм жизнь героя

void OnGUI()
{
GUI.DrawTexture (Rect (1040,_live*100/2030),_hp_Texture);//100 максимальная длина полоски здоровья в пикселях


P.S.Это логика,с -1 думаю сами додумаете(не представляю себе как это величина здоровья -1,очень сильно умер?)

SaM_ 31.07.2011 16:52

Ответ: Фак по Юнити.
 
Цитата:

не представляю себе как это величина здоровья -1,очень сильно умер?
Просто если здоровье 0, то персонаж еще жив, а если -1, то мёртв. Можно на 1 цифру перенести, сути не меняет.

SaM_ 31.07.2011 18:00

Ответ: Фак по Юнити.
 
Цитата:

float _live;// Реалтайм жизнь героя

void OnGUI()
{
GUI.DrawTexture (Rect (10, 40,_live*100/20, 30),_hp_Texture);//100 максимальная длина полоски здоровья в пикселях
}
Попробовал поиграться с этими величинами, но они вроде только растягивают текстуру, а не обрезают, как надо.

Lestar 31.07.2011 18:16

Ответ: Фак по Юнити.
 
Если нужно обрезать,вложите свою полоску жизни в
PHP код:

GUI.BeginGroup();
GUI.EndGroup (); 

И оперируйте размером самого блока.

SaM_ 31.07.2011 18:19

Ответ: Фак по Юнити.
 
Разобрался.
Плюс нашел вот такой скрипт:
PHP код:

/* Using multiple Groups to clip the displayed Contents */

var bgImage Texture2D// background image that is 256 x 32
var fgImage Texture2D// foreground image that is 256 x 32
var playerEnergy 1.0// a float between 0.0 and 1.0

function OnGUI () {
    
// Create one Group to contain both images
    // Adjust the first 2 coordinates to place it somewhere else on-screen
    
GUI.BeginGroup (Rect (0,0,256,32));

    
// Draw the background image
    
GUI.Box (Rect (0,0,256,32), bgImage);

    
// Create a second Group which will be clipped
    // We want to clip the image and not scale it, which is why we need the second Group
    
GUI.BeginGroup (Rect (0,0,playerEnergy 25632));

    
// Draw the foreground image
    
GUI.Box (Rect (0,0,256,32), fgImage);

    
// End both Groups
    
GUI.EndGroup ();
    
GUI.EndGroup ();




Часовой пояс GMT +4, время: 07:33.

vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot