Извините, ничего не найдено.

Не расстраивайся! Лучше выпей чайку!
Регистрация
Справка
Календарь

Вернуться   forum.boolean.name > Программирование игр для компьютеров > Unity

Unity Мультиплатформенный инструмент для разработки игр

Ответ
 
Опции темы
Старый 27.06.2013, 08:10   #1081
burovalex
Разработчик
 
Аватар для burovalex
 
Регистрация: 04.04.2012
Сообщений: 468
Написано 37 полезных сообщений
(для 60 пользователей)
Ответ: Фак по Юнити.

Блин, я наверное опять где-то туплю...
SetInt SetFloat .. я так и не нашел.
Нашел Insert через него тоже Null Reference

Для полной картины выкидываю части кода (части чтоб в лишнем не копашиться)

Я использую несколько скриптов, один из них основной, который достаёт нужные переменные из остальных
основной скрипт

OnGUI ()
{
GUILayout.BeginHorizontal();
NewProfileName = GUILayout.TextField(NewProfileName, (int)20);
if (GUILayout.Button(DB.text.create))
{
Profile.AllProfiles[0].name.Insert(0,NewProfileName);
};
GUILayout.EndHorizontal();
}

скрипт профиля

public class Profile : MonoBehaviour {

[Serializable]
public class _Profile
{
public string name;
public int RAM, HDD, rankRAM, rankHDD;
public DateTime DateTimeBeginHDD;
}

public static _Profile[] AllProfiles;

void Start ()
{
AllProfiles = new _Profile[2];
}
__________________
(Offline)
 
Ответить с цитированием
Старый 27.06.2013, 11:33   #1082
cahekp
Разработчик
 
Аватар для cahekp
 
Регистрация: 14.12.2008
Адрес: Томск
Сообщений: 530
Написано 270 полезных сообщений
(для 883 пользователей)
Ответ: Фак по Юнити.

Причем тут Insert?
Insert - это вставить в строку какую-то подстроку с определенной позиции.
Вот это:
Profile.AllProfiles[0].name.Insert(0,NewProfileName);
всё-равно, что и вот это:
Profile.AllProfiles[0].name = NewProfileName;

Это никаким боком не относится к сохранению и загрузке!

Чтобы была возможность сохранять и загружать профили, пиши, грубо говоря, так:
public class Profile : MonoBehaviour {

[Serializable]
public class _Profile
{
public string name;
public int RAM, HDD, rankRAM, rankHDD;
public DateTime DateTimeBeginHDD;
}

public static _Profile[] AllProfiles;

void Start ()
{
AllProfiles = new _Profile[2];
}

public void Save() {
 PlayerPrefs.SetInt("CountProfiles", AllProfiles.Length);

 for (int i=0; i<AllProfiles.Length; i++) {
  PlayerPrefs.SetString(i+"_name", AllProfiles[i].name);
  PlayerPrefs.SetInt(i+"_RAM", AllProfiles[i].RAM);
  // И так далее по списку...
 }
}

public void Load() {
 AllProfiles = new _Profile[PlayerPrefs.GetInt("CountProfiles")];

 for (int i=0; i<AllProfiles.Length; i++) {
  AllProfiles[i].name = PlayerPrefs.GetString(i+"_name");
  AllProfiles[i].RAM = PlayerPrefs.GetInt(i+"_RAM");
  // И так далее по списку...
 }
}
После этого можешь использовать методы Load и Save для загрузки и сохранения состояний всех профилей одновременно.
__________________
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
burovalex (27.06.2013)
Старый 27.06.2013, 16:05   #1083
burovalex
Разработчик
 
Аватар для burovalex
 
Регистрация: 04.04.2012
Сообщений: 468
Написано 37 полезных сообщений
(для 60 пользователей)
Ответ: Фак по Юнити.

Мужики выручайте - скоро мозг взорвётся
Вроде ничего такого не делаю...

Вызываю в ГУИ фунцию (временно сделал не статикой, чтобы видеть что с данными):
GUILayout.BeginHorizontal();
            
NewProfileName GUILayout.TextField(NewProfileName, (int)20);
            if (
GUILayout.Button(DB.text.create)) 
                {
                
GetComponent<Profile>().CreateNewProfile (NewProfileName);
                };
        
GUILayout.EndHorizontal(); 
А вот в этом скрипте нулл хоть убейся:

using System.Collections.Generic;
using System;

public class 
Profile MonoBehaviour {
    
    [
System.Serializable]
    public class 
_Profile
        
{
        public 
string name;
        public 
int RAMHDDrankRAMrankHDD;
        public 
DateTime DateTimeBeginHDD;
        }
    
    public 
_Profile[] AllProfiles;
    public 
_Profile CurrentProfile;
    public 
int countProfiles;
    
void Start ()
    {

    }
    
void Update () 
    {

    }
    
public 
void CreateNewProfile (string NPN)
    {
    
countProfiles++;
    
AllProfiles = new _Profile[countProfiles];
        
    for (
int i=0i<countProfilesi++)
        {
        print (
i);
        
AllProfiles[i].name NPN;        
        }
    }


Хотя по скрину видно что в массиве Есть новый элемент!
Миниатюры
Нажмите на изображение для увеличения
Название: 1.jpg
Просмотров: 699
Размер:	145.2 Кб
ID:	19284  
__________________
(Offline)
 
Ответить с цитированием
Старый 27.06.2013, 16:25   #1084
seaman
Знающий
 
Регистрация: 08.01.2013
Адрес: Самара
Сообщений: 284
Написано 104 полезных сообщений
(для 180 пользователей)
Ответ: Фак по Юнити.

AllProfiles[i] не определен. выделить память под массив - не значит определить все его элементы.
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
burovalex (27.06.2013)
Старый 27.06.2013, 17:42   #1085
burovalex
Разработчик
 
Аватар для burovalex
 
Регистрация: 04.04.2012
Сообщений: 468
Написано 37 полезных сообщений
(для 60 пользователей)
Ответ: Фак по Юнити.

СПАСИБО!
Я уже не первый раз так туплю. Пакс мне уже объяснял. Всё привыкнуть не могу. В старых языках один раз объявил и не перевыделишь уже память..

Т.е. получается AllProfiles[i] = new _Profile[10] - выделяет память под 10 элементов данного типа.
а AllProfile[1] - это уже определение?
__________________
(Offline)
 
Ответить с цитированием
Старый 27.06.2013, 22:08   #1086
seaman
Знающий
 
Регистрация: 08.01.2013
Адрес: Самара
Сообщений: 284
Написано 104 полезных сообщений
(для 180 пользователей)
Ответ: Фак по Юнити.

AllProfile[1] = new _Profile();
Вот это определение.
Т.е. нужно пробежать циклом по всем элементам массива и определить их.
PS^ В Вашем случае было бы проще вместо
public class _Profile
использовать
public struct _Profile
если бы не нужна была сериализация. С одной стороны структуры по умолчанию определяются дефолтными значениями - не нужен цикл. С другой стороны структуры в Юнити не нормально сериализуются.
(Offline)
 
Ответить с цитированием
Эти 2 пользователя(ей) сказали Спасибо seaman за это полезное сообщение:
burovalex (28.06.2013), cahekp (28.06.2013)
Старый 27.06.2013, 22:20   #1087
burovalex
Разработчик
 
Аватар для burovalex
 
Регистрация: 04.04.2012
Сообщений: 468
Написано 37 полезных сообщений
(для 60 пользователей)
Ответ: Фак по Юнити.

Еще есть такой вопрос..

Предисловие:
Еще изучая блитц, придумал (может велосипед, но не слышал) как на разные 3д модели использовать различные эффекты, например поднимая предмет он плавно исчезает, подпрыгивает и тд.
И чтобы не заморачиваться с задержкой для эффекта, буфером для действия и т.д. - объект сразу оказывается в инвентаре, меш копируется в скрипт где он анимируется, а оригинал удаляется.

Вопросы:
Нормальный ли такой метод?
И главное, получится ли такой метод использовать в 2Д??

Т.е. нажал на кнопку и в этот момент скопировал текстуру кнопки с надписями рисунками координатами.
__________________
(Offline)
 
Ответить с цитированием
Старый 28.06.2013, 10:14   #1088
burovalex
Разработчик
 
Аватар для burovalex
 
Регистрация: 04.04.2012
Сообщений: 468
Написано 37 полезных сообщений
(для 60 пользователей)
Ответ: Фак по Юнити.

Спасибо!
Когда я отвечал, ты как раз писал, не увидел ответа.
На счет структур вообще полезно. А сериализацией я не пользуюсь, даже не знаю для чего она. Просто с ней показывает массив в инспекторе
А так вроде сериализация позволяет сохранять сцену, типа сохранения игры?
__________________
(Offline)
 
Ответить с цитированием
Старый 28.06.2013, 13:04   #1089
cahekp
Разработчик
 
Аватар для cahekp
 
Регистрация: 14.12.2008
Адрес: Томск
Сообщений: 530
Написано 270 полезных сообщений
(для 883 пользователей)
Ответ: Фак по Юнити.

А так вроде сериализация позволяет сохранять сцену, типа сохранения игры?
Ну... Она может использоваться в том числе и для этого. Сериализация - это преобразование объекта в поток байтов. А что с ним дальше делать - это уже ты решаешь. Хочешь - сохраняй в файл в виде бинарника, хочешь - в виде XML, хочешь - передавай по сети, закидывай в базу и т.д.

Имхо, странно ты как-то начал работать с сериализацией, даже не изучив ее.

Вот неплохая статья про сериализацию: http://brain-sharper.blogspot.ru/2012/02/net.html
Прочти. Думаю, многое станет понятно.
__________________
(Offline)
 
Ответить с цитированием
Эти 2 пользователя(ей) сказали Спасибо cahekp за это полезное сообщение:
Andvrok (30.06.2013), burovalex (29.06.2013)
Старый 29.06.2013, 10:12   #1090
burovalex
Разработчик
 
Аватар для burovalex
 
Регистрация: 04.04.2012
Сообщений: 468
Написано 37 полезных сообщений
(для 60 пользователей)
Ответ: Фак по Юнити.

Сообщение от burovalex Посмотреть сообщение
Еще есть такой вопрос..

Предисловие:
Еще изучая блитц, придумал (может велосипед, но не слышал) как на разные 3д модели использовать различные эффекты, например поднимая предмет он плавно исчезает, подпрыгивает и тд.
И чтобы не заморачиваться с задержкой для эффекта, буфером для действия и т.д. - объект сразу оказывается в инвентаре, меш копируется в скрипт где он анимируется, а оригинал удаляется.

Вопросы:
Нормальный ли такой метод?
И главное, получится ли такой метод использовать в 2Д??

Т.е. нажал на кнопку и в этот момент скопировал текстуру кнопки с надписями рисунками координатами. А дальше копией манипулировать
А про мой подход что скажете?

Спасибо! Ссылку сохранил..
PS: ..но для себя усвоил что лучше разбираться с текущими вопросами по проекту, чем хвататься за всё.
__________________
(Offline)
 
Ответить с цитированием
Старый 10.07.2013, 00:38   #1091
Andvrok
Бывалый
 
Регистрация: 26.07.2009
Сообщений: 785
Написано 362 полезных сообщений
(для 995 пользователей)
Ответ: Фак по Юнити.

Как определить, обьекты столкнулись на низкой скорости, или с разгона?
(Offline)
 
Ответить с цитированием
Старый 10.07.2013, 07:34   #1092
pax
Unity/C# кодер
 
Аватар для pax
 
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений
(для 5,323 пользователей)
Ответ: Фак по Юнити.

Тут есть пример: http://docs.unity3d.com/Documentatio...sionEnter.html
__________________
Blitz3d to Unity Wiki
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
Andvrok (10.07.2013)
Старый 10.07.2013, 22:58   #1093
Andvrok
Бывалый
 
Регистрация: 26.07.2009
Сообщений: 785
Написано 362 полезных сообщений
(для 995 пользователей)
Ответ: Фак по Юнити.

Сообщение от pax Посмотреть сообщение
Я правильно понимаю, что через велосити можно узнать и скорость просто движущегося ригидбоди? Через rigidbody.velocity?
(Offline)
 
Ответить с цитированием
Старый 10.07.2013, 23:56   #1094
pax
Unity/C# кодер
 
Аватар для pax
 
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений
(для 5,323 пользователей)
Ответ: Фак по Юнити.

Правильно
__________________
Blitz3d to Unity Wiki
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
Andvrok (11.07.2013)
Старый 07.08.2013, 00:27   #1095
Andvrok
Бывалый
 
Регистрация: 26.07.2009
Сообщений: 785
Написано 362 полезных сообщений
(для 995 пользователей)
Ответ: Фак по Юнити.

Вопрос, конечно, ламерский, но как реализовать разный угол отскока ригидбоди в одной и той же ситуации? Чтобы добавить непредсказуемости кое-какой. В качестве ригидбоди выступает сфера, колизиться будет об боксы.
(Offline)
 
Ответить с цитированием
Ответ


Опции темы

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


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


vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot
Style crйe par Allan - vBulletin-Ressources.com