Среда, 24 Апреля 2024, 20:48

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 2 из 7
  • «
  • 1
  • 2
  • 3
  • 4
  • 6
  • 7
  • »
Форум игроделов » Записи участника » Sanchez06 [133]
Результаты поиска
Sanchez06Дата: Среда, 03 Марта 2021, 05:43 | Сообщение # 21 | Тема: Помогите доделать сохранение
участник
Сейчас нет на сайте
Код

foreach (var obj in GameObject.FindGameObjectsWithTag("Cube1"))

{
ObjectsPositions.Add(obj);
}

Тут нужно бы добавлять новый экземпляр myVector3
Код
foreach (var obj in GameObject.FindGameObjectsWithTag("Cube1"))

{
myVector3 i = new myVector3()
i.x = obj.transform.position.x;
i.y = obj.transform.position.y;
i.z = obj.transform.position.z;
ObjectsPositions.Add(i);
}


Код
void List<myVector3>Load()

Во первых, Void означает, что функция ничего не возвращает, но тут тебе нужно вернуть лист. Да и тип возвращаемого значения нужно писать через пробел:
Код
public List<myVector3> Load()


Насчет сериализации - я тебе писал в соседней теме (и почему стоило новую создавать?), там все предельно просто. На твоем примере будет как-то так:
Код

void Save(List<myVector3> positions)
{

        BinaryFormatter formatter = new BinaryFormatter();

            using (FileStream stream = new FileStream(Application.persistentDataPath + "/save.sav", FileMode.Create))
            {
                formatter.Serialize(Application.persistentDataPath + "/save.sav", positions);
            }
}


И загрузка:
Код

public List<myVector3> Load()
{
List<myVector3> objects;
BinaryFormatter formatter = new BinaryFormatter();

            using (FileStream stream = new FileStream(Application.persistentDataPath + "/save.sav", FileMode.Open))
            {
                objects = (List<myVector3>)formatter.Deserialize(stream);
            }
return objects;
}
Sanchez06Дата: Вторник, 02 Марта 2021, 21:20 | Сообщение # 22 | Тема: Как сделать сохранения
участник
Сейчас нет на сайте
Цитата vova1227 ()
2. Приложение будет для мобильных устройств, насколько я понял там есть разница в методах сохранения, еще не очень понял в чем именно, но как бы в социализации. Хотя для начала мне хоть как то сохранить прогресс игры.

Как минимум, бинарная сериализация на андроид точно работает, скорее всего и на иос тоже.

Я сделал так -дикт, где ключ - название уровня, а значение - класс уровня. В уровне собственно листы противников, декораций и всего такого.
Код

[System.Serializable]
public Dictionary<string, Level> levels = new Dictionary<string, Level>();
public struct Corpse
{
    public string type;
    public int x;
    public int y;
}

[System.Serializable]
public struct Point
{
    public float X;
    public float Y;
    public float Z;
    public Point(float x, float y, float z)
    {
        X = x;
        Y = y;
        Z = z;
    }
}
[System.Serializable]
public struct Enemy
{
    public string type;
    public Point pos;
    public Point rot;
    public int hp;
    public AI_cult_1.State state;
    public int ammo;
    public bool vis;
}

[System.Serializable]
public struct Decoration
{
    public string type;
    public Point pos;
    public Point rot;
}

[System.Serializable]
public struct Level
{
    public List<Corpse> corpses;
    public List<Enemy> enemies;
    public List<Decoration> decorations;
}


После, добавляем в этот список новый уровень - тот, который мы хотим сохранить (для этого ессна надо находиться на нем же):
Код

Level lvl = new Level();

        lvl.decorations = GetAllDecor();//берем все декорации на сцене
        lvl.enemies = GetAllEnemies();//находим всех противников на сцене
        
        if (!levels.ContainsKey(SceneManager.GetActiveScene().name)) //если нет уровня в дикте
        {levels.Add(SceneManager.GetActiveScene().name,lvl);}        //то создадим его
        else
        {levels[SceneManager.GetActiveScene().name]=lvl;} //а если есть - перезапишем

    public List<Decoration> GetAllDecor()
    {
        List<Decoration> lol = new List<Decoration>();
        GameObject[] decors = GameObject.FindGameObjectsWithTag("Decoration");
        foreach (GameObject decor in decors)
        {
            Decoration a = new Decoration();
            a.type = decor.name;
            a.pos = new Point(decor.transform.position.x,decor.transform.position.y,decor.transform.position.z);
            a.rot = new Point(decor.transform.eulerAngles.x,decor.transform.eulerAngles.y,decor.transform.eulerAngles.z);
            lol.Add(a);
        }
        
        return lol;

    }

    public List<Enemy> GetAllEnemies()
    {
        List<Enemy> lol = new List<Enemy>();
        AI_cult_1[] enemies_on_scene = Object.FindObjectsOfType<AI_cult_1>();
        foreach (AI_cult_1 enemy in enemies_on_scene)
        {
            Enemy a = new Enemy();
            a.type = enemy.name;
            a.pos = new Point(enemy.transform.position.x,enemy.transform.position.y,enemy.transform.position.z);
            a.rot = new Point(enemy.transform.eulerAngles.x,enemy.transform.eulerAngles.y,enemy.transform.eulerAngles.z);
            a.ammo = enemy.countAmmo;
            a.hp = enemy.hp;
            a.state = enemy.state;
            a.vis = enemy.vis;
            lol.Add(a);
        }


И, собственно, сериализуем и сохраняем эти значения!
Код
        BinaryFormatter formatter = new BinaryFormatter();

            using (FileStream stream = new FileStream(Application.persistentDataPath + "/save.sav", FileMode.Create))
            {
                formatter.Serialize(Application.persistentDataPath + "/save.sav", levels);
            }


Так, ну а теперь загружаем наш levels:
Код

BinaryFormatter formatter = new BinaryFormatter();

            using (FileStream stream = new FileStream(Application.persistentDataPath + "/save.sav", FileMode.Open))
            {
                levels = (Dictionary<string, Level>)formatter.Deserialize(stream);
            }


Ну, как-то так. Может быть где-то промахнулся, но, думаю, ты разберешься.
Sanchez06Дата: Воскресенье, 28 Февраля 2021, 22:34 | Сообщение # 23 | Тема: Доступ к children
участник
Сейчас нет на сайте
Если у тебя скрипт В в единственном экземпляре, то можешь сделать GameObject.GetComponentInChildren(B)
Sanchez06Дата: Вторник, 10 Ноября 2020, 06:39 | Сообщение # 24 | Тема: Вопрос-[ответ] по Unity
участник
Сейчас нет на сайте
Цитата FlyOfFly ()
x=-0.3584555

Попробуй в JoyTester посмотреть оси, это давняя проблема дуалшоков, когда аналоги выдают отклонение. Есть игры, в которых это незаметно, где не такое чувствительное управление.
Цитата geralex ()
Стандартный принцип PlayerPref с какой-то связью по комнате или что-то из сложных схем применяется?

Думаю, проще и гибче сделать сериализацию
Sanchez06Дата: Суббота, 26 Сентября 2020, 05:29 | Сообщение # 25 | Тема: ПОМОГИТЕ ПОЖАЛУЙСТАААА найти ошибки в коде, заранее спс!
участник
Сейчас нет на сайте
Да, точно, после фигурных скобок не надо ставить точку с запятой.
Код
class Program
{
    static void Main(string[] args)
    {
        dynamic stud = new Student();

        stud.Init();
        stud.DisplayStudentInfo(1);
    }
}

public class Student
{
    public void Init()
    {
        Console.WriteLine("Студент инициализирован");//или что тебе надо в методе Init
    }
    public void DisplayStudentInfo(int id)
    {
        Console.WriteLine(id);
    }
}
Sanchez06Дата: Суббота, 26 Сентября 2020, 05:18 | Сообщение # 26 | Тема: ПОМОГИТЕ ПОЖАЛУЙСТАААА найти ошибки в коде, заранее спс!
участник
Сейчас нет на сайте
Похоже на обычный c#.
Функции Init нет в классе Student.
DisplayStudentInfo принимает int, то есть число, а не строку. Правильно будет stud.DisplayStudentInfo(1);
Sanchez06Дата: Суббота, 26 Сентября 2020, 05:10 | Сообщение # 27 | Тема: Вопрос-[ответ] по Unity
участник
Сейчас нет на сайте
Можно ли использовать купленные ассеты в коммерческих играх? Нужно ли как-то указывать в игре или в титрах, какие ассеты я использую?
Sanchez06Дата: Четверг, 02 Апреля 2015, 07:39 | Сообщение # 28 | Тема: Получится ли сделать такую игру в GM?
участник
Сейчас нет на сайте
Цитата EfimovMax ()
что не нужно прописывать поиск пути.

В гамачке он встроенный.
Цитата maxim_2k ()
Если в игре будет множество костюмов, то придётся для каждого костюма пилить 8 спрайтов с разных сторон. Если честно, я не очень понимаю, как грамотно это реализовать, поэтому прошу у вас помощи.
Так же хотелось бы узнать побольше о каких то вещах, которые надеваются поверх одежды, вроде рюкзаков или разгрузки.

Насчет костюмов да, но в самой иннавудс все эти разгрузки, пушки и предметы появляются одним спрайтом. Например ты можешь там взять любую винтовку, а спрайт у них там будет одинаковый.
Цитата maxim_2k ()
Но как то раз я вспомнил про объекты, которые можно сделать невидимыми для игрока и при наведение на них будет изменяться спрайт в соответствие с направлением.

Можно сделать легче, просто проверяя направление от точки игрока до точки мыши (point_direction помоему)
Sanchez06Дата: Четверг, 02 Апреля 2015, 07:23 | Сообщение # 29 | Тема: Как оптимизировать игру?
участник
Сейчас нет на сайте
Поместить звуки во внешнюю папку можно, но это не сильно должно помочь. Попробуй перекодировать в OGG, или в меньший битрейт.
Sanchez06Дата: Четверг, 19 Марта 2015, 10:04 | Сообщение # 30 | Тема: SPACEONLINE.BIZ
участник
Сейчас нет на сайте
Игра платная, чтобы начать, нужно ввести 30 рублей. Плюс, тема не в том разделе.

Сообщение отредактировал Sanchez06 - Четверг, 19 Марта 2015, 10:04
Sanchez06Дата: Вторник, 10 Марта 2015, 19:27 | Сообщение # 31 | Тема: Монетизация десктопной игры
участник
Сейчас нет на сайте
Ну, я тоже об этом думал. Раз эти сервисы расчитаны на сайты, то и зарабатывай на сайте! Сделай вики, сайт с новостями о своей игре, и поставь какой-нибудь поп-андер. Или вместо микротранзакций - ссылка с тем же адфлай, после перехода на которую тебе игровые ништяки приходят.
Sanchez06Дата: Пятница, 06 Февраля 2015, 22:28 | Сообщение # 32 | Тема: Направление обьекта
участник
Сейчас нет на сайте
Смотря что ты хочешь сделать. Если чтобы можно было войти\выйти из машины, то не легче ли сделать у машины локальную переменную, отвечающую за то, сидит ли там игрок или нет? Тогда и направление машины менять не придется, т.к. это будет один и тот же объект.
Sanchez06Дата: Среда, 21 Января 2015, 21:07 | Сообщение # 33 | Тема: Массивы-массивы-массивы...
участник
Сейчас нет на сайте
Цитата falcoware ()
int card_name_number = Random(0,2);
int card_live_number = Random(0,2);
int card_sprite_number = Random(0,2);

Фалко, не, Гамак дает результат функции Рандом с запятой, то есть может выпасть и 1.42345234, и 0.000001, но никогда ни 0 и не 2, там есть проще вещь - Choose(0,1,2)

Что-то типо:

i=choose(0,1,2)
card_attack[i]=...
card_live[i]=...
card_sprite[i]=...


Сообщение отредактировал Sanchez06 - Среда, 21 Января 2015, 21:09
Sanchez06Дата: Среда, 21 Января 2015, 20:59 | Сообщение # 34 | Тема: Массивы-массивы-массивы...
участник
Сейчас нет на сайте
Скинь код, посмотрим
Sanchez06Дата: Четверг, 15 Января 2015, 13:09 | Сообщение # 35 | Тема: FileKit - от 15$ до 50$ за 1 тыс. загрузок
участник
Сейчас нет на сайте
А минималка какая?
Sanchez06Дата: Воскресенье, 16 Ноября 2014, 16:34 | Сообщение # 36 | Тема: Вопрос - Ответ (Game Maker)
участник
Сейчас нет на сайте
Так, я не понимаю, ГМС стандарт теперь бесплатным стал? Или опять временная акция?
Sanchez06Дата: Вторник, 30 Сентября 2014, 20:42 | Сообщение # 37 | Тема: Город с возможностью хождения по нему
участник
Сейчас нет на сайте
Цитата dima9595 ()
всё равно по-кодить придётся

А что там кодить то без взаимодействия? Берешь стандартный ассет для фпс\тпс, и все - он уже ходит, сталкивается, прыгает, и все такое. Потом модельки загружаешь и расставляешь с меш-коллайдерами.
Sanchez06Дата: Суббота, 27 Сентября 2014, 11:44 | Сообщение # 38 | Тема: Что будет, если я просто переделаю пример на ГМ?
участник
Сейчас нет на сайте
Поменяю спрайты и звуки, а механику оставлю без изменений. Нужно ли подписывать автора примера?
Sanchez06Дата: Пятница, 30 Мая 2014, 19:29 | Сообщение # 39 | Тема: Спор о необходимости плавучки в играх
участник
Сейчас нет на сайте
В некоторых играх используется нейронная сеть - в таком случае, для повышения реагирования лучше использовать числа с плавающей точкой.
Sanchez06Дата: Понедельник, 26 Мая 2014, 13:11 | Сообщение # 40 | Тема: Вход и выход из транспорта
участник
Сейчас нет на сайте
Ну раз мы тут меряемся примерами, то скину свой - http://rghost.ru/55861925
Требует всего одного обьекта машины, реализовано движение самой машинки) Садиться\выйти - Е
Форум игроделов » Записи участника » Sanchez06 [133]
  • Страница 2 из 7
  • «
  • 1
  • 2
  • 3
  • 4
  • 6
  • 7
  • »
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг