собрать бонус

Форум для самых маленьких, а так же тех, кому недосуг читать справку самостоятельно.

собрать бонус

Сообщение smorikb 03 окт 2012, 15:23

Вот я написал скрипт

Синтаксис:
Используется csharp
var score = 0;
var label : Rect;

function OnTriggerEnter(c:Collider){
if(c){
score +=1;
Destroy(collider.gameObject);
}
}
function OnGUI (){
GUI.Label(new Rect(label), "Score:" + score);
}



Вот у меня проблема. Я создал модель монетки повесил скрипт на модель. Player подходит к монетке монетка ищезает (всё как надо ) только я не понимаю почему на экран не вывод слово Score и сколько я уже монетак собрал?

Помогите
Последний раз редактировалось smorikb 03 окт 2012, 17:32, всего редактировалось 1 раз.
smorikb
UNIт
 
Сообщения: 96
Зарегистрирован: 29 авг 2012, 20:44

Re: Бонус

Сообщение smorikb 03 окт 2012, 15:28

Это скрипт на яве
smorikb
UNIт
 
Сообщения: 96
Зарегистрирован: 29 авг 2012, 20:44

Re: Бонус

Сообщение Good1101 03 окт 2012, 15:39

попробуй изменить строчку
Синтаксис:
Используется javascript
GUI.Label(new Rect(label), "Score:" + score);

на
GUI.Label( Rect(0,0,100,40), "Score:" + score);
скорей всего надпись выводится просто не задана позиция и размер ректа и и его невидно.
Как тут стрелять?
Аватара пользователя
Good1101
Адепт
 
Сообщения: 1100
Зарегистрирован: 17 ноя 2011, 14:07
  • ICQ

Re: Бонус

Сообщение Kayler 03 окт 2012, 15:39

smorikb писал(а):Это скрипт на яве

потому что наверное нужно писать так

GUI.Label(label, "Score:" + score);
Скрытый текст:
не уверен, на яве не пишу
Аватара пользователя
Kayler
Адепт
 
Сообщения: 1038
Зарегистрирован: 25 авг 2010, 23:49
Откуда: Чувашия

Re: Бонус

Сообщение smorikb 03 окт 2012, 15:56

Я заменил строчку надпись появилась, но когда я подобрал монетку надпись исчезла.
smorikb
UNIт
 
Сообщения: 96
Зарегистрирован: 29 авг 2012, 20:44

Re: Бонус

Сообщение Kayler 03 окт 2012, 16:11

smorikb писал(а):Я заменил строчку надпись появилась, но когда я подобрал монетку надпись исчезла.

так ты что, скрипт повесил на монетку? конечно исчезнет надпись ведь вместе с монеткой ты удаляешь и скрипт
Аватара пользователя
Kayler
Адепт
 
Сообщения: 1038
Зарегистрирован: 25 авг 2010, 23:49
Откуда: Чувашия

Re: Бонус

Сообщение smorikb 03 окт 2012, 16:23

Так если я повешу скрипт на игрока то не монетка уничтожеться, а игрок
smorikb
UNIт
 
Сообщения: 96
Зарегистрирован: 29 авг 2012, 20:44

Re: Бонус

Сообщение smorikb 03 окт 2012, 16:30

Кстатее подскажите как сделать что бы вместо уничтожения монетак была телепортация типо плауер подходит к монетке и она ищезает(телепортируется очень далеко) и начисляются очки
smorikb
UNIт
 
Сообщения: 96
Зарегистрирован: 29 авг 2012, 20:44

Re: Бонус

Сообщение trololoid 03 окт 2012, 16:34

Беда. И ведь выхода то нет..
Аватара пользователя
trololoid
Старожил
 
Сообщения: 712
Зарегистрирован: 15 сен 2011, 19:18
Откуда: Туапсе, Краснодарский край, Россия

Re: Бонус

Сообщение smorikb 03 окт 2012, 16:40

Плиз помогите со скриптом очень нужны эти бонусы
smorikb
UNIт
 
Сообщения: 96
Зарегистрирован: 29 авг 2012, 20:44

Re: Бонус

Сообщение Kayler 03 окт 2012, 16:47

smorikb писал(а):Плиз помогите со скриптом очень нужны эти бонусы

тебе нужно отображать очки например на игроке, или на камере, и при начислении очков присваивать параметры в скрипт с очками
например на камере есть переменная с очками, и функция которая их отображает
при подбирании монетки обращаться к камере и увеличивать уже существующие очки

вот все что тебе понадобиться
http://docs.unity3d.com/Documentation/S ... Enter.html
http://docs.unity3d.com/Documentation/S ... onent.html
http://docs.unity3d.com/Documentation/S ... stroy.html
http://docs.unity3d.com/Documentation/S ... Label.html
Аватара пользователя
Kayler
Адепт
 
Сообщения: 1038
Зарегистрирован: 25 авг 2010, 23:49
Откуда: Чувашия

Re: Бонус

Сообщение Nicloay 03 окт 2012, 16:55

1е Переименовываешь тему типа "игровая логика, собрать бонус" ну или еще чего, чтоб было всем понятно, и если у когонить будет схожая проблема, и он наберет близкие слова в поиске или гугле, чтоб он нашел эту тему, а не переспрашивал опять.


2е и все остальное :), на unifyComunity берешь скрипт синглетона, (дальше все будет на c# извини, с javaScript не работаю)
Синтаксис:
Используется csharp
using UnityEngine;
public abstract class MonoSingleton<T> : MonoBehaviour where T : MonoSingleton<T>
{
    private static T m_Instance = null;
    public static T instance
    {
        get
        {
            // Instance requiered for the first time, we look for it
            if( m_Instance == null )
            {
                m_Instance = GameObject.FindObjectOfType(typeof(T)) as T;
 
                // Object not found, we create a temporary one
                if( m_Instance == null )
                {
                    Debug.LogWarning("No instance of " + typeof(T).ToString() + ", a temporary one is created.");
                    m_Instance = new GameObject("Temp Instance of " + typeof(T).ToString(), typeof(T)).GetComponent<T>();
 
                    // Problem during the creation, this should not happen
                    if( m_Instance == null )
                    {
                        Debug.LogError("Problem during the creation of " + typeof(T).ToString());
                    }
                }
                m_Instance.Init();
            }
            return m_Instance;
        }
    }
    // If no other monobehaviour request the instance in an awake function
    // executing before this one, no need to search the object.
    private void Awake()
    {
        if( m_Instance == null )
        {
            m_Instance = this as T;
            m_Instance.Init();
        }
    }
 
    // This function is called when the instance is used the first time
    // Put all the initializations you need here, as you would do in Awake
    public virtual void Init(){}
 
    // Make sure the instance isn't referenced anymore when the user quit, just in case.
    private void OnApplicationQuit()
    {
        m_Instance = null;
    }
}
 


делаешь свой класс, например GameConfig и екстендишь его с синглетона, туда же пихаешь свою переменную score

Синтаксис:
Используется csharp
public class GameConfig : MonoSingleton<GameConfig>
{
            public int gameScore=0;
}
 


Далее делаешь пустой объект на него вешаешь скрипт который работает только c GUI и этот скрипт считыват значение score из твоего синглетона
типа
Синтаксис:
Используется csharp
public class GameHud:MonoBehaviour{

void OnGUI(){
    GUI.Label(new Rect(label), "Score:" + GameConfig.instance.score);
}
 



ну и делаешь контроллер бонуса, который ингрементит общее значение

Синтаксис:
Используется csharp
public class CoinController:MonoBehaviour{
  void OnTriggerEnter(Collider other) {
        GameConfig.instance.score+=1;
        Destroy(gameObject);
    }  
}
 



Если что, извиняюсь за ошибки, потому как все кроме синглетона писал а не копипастил :).
If you wish to make an apple pie from scratch, you must first invent the universe.(Carl Sagan, Cosmos)
| My Asset Store | coloring book | github | _wiki.unity3d.com | twitter | linkedin |
Аватара пользователя
Nicloay
Адепт
 
Сообщения: 1288
Зарегистрирован: 31 май 2012, 09:27
Откуда: Альпс
  • Сайт

Re: собрать бонус

Сообщение Hazarius 03 окт 2012, 23:33

а не проще ли создать статический класс вместо синглтона?
Hazarius
UNец
 
Сообщения: 9
Зарегистрирован: 24 сен 2012, 21:14
Откуда: Киев

Re: собрать бонус

Сообщение Nicloay 04 окт 2012, 03:57

создать - проще.

но еслиб попробовал синглетон, то увидел бы что все переменные можно настраивать через инспектор, если приаттачить его к gameObject-у.
If you wish to make an apple pie from scratch, you must first invent the universe.(Carl Sagan, Cosmos)
| My Asset Store | coloring book | github | _wiki.unity3d.com | twitter | linkedin |
Аватара пользователя
Nicloay
Адепт
 
Сообщения: 1288
Зарегистрирован: 31 май 2012, 09:27
Откуда: Альпс
  • Сайт

Re: собрать бонус

Сообщение 2rusbekov 04 окт 2012, 17:31

Синтаксис:
Используется javascript
var score = 0;

function OnTriggerEnter(c:Collider){
if(c.transform.tag == "moneta"){
score +=1;
Destroy(c.gameObject);
}
}

function OnGUI (){
GUI.Label(new Rect(20, 20, 100, 30), "Score: " + score);
}
 


И вешаешь на игрока. А монетке присваиваешь таг
Still alive...
Аватара пользователя
2rusbekov
Адепт
 
Сообщения: 1409
Зарегистрирован: 06 апр 2012, 12:57
Откуда: Бишкек


Вернуться в Почемучка

Кто сейчас на конференции

Сейчас этот форум просматривают: Google [Bot] и гости: 30