DuCats Games DuCats Games

Jusper, Привет!
Так она же давно в релизе уже больше года)

Jusper Jusper

DuCats Games, а что случилось с Action RPG?

Jusper Jusper

И артово и интерфейсно игруха стала выглядеть намного круче!

win20082007 win20082007

Приветствую друзья! На этой неделе учился смешивать материалы на враге для правильной работы умения невидимости.

TheDarkestRed TheDarkestRed

Бой в шкуре врага 🎮🧟🤺

TheDarkestRed TheDarkestRed

Два способа решить одну задачу 🎮🧟🔥💥
https://vk.com/the_darkestred

alexprey alexprey

О да, "Всем привет, диск сгорел, игра не выйдет" прям классика!

Пустил ностальгирующую слезу, сам через это все прошел, хоть и не выпустил ни одной игры

TheDarkestRed TheDarkestRed

Используй врага, чтобы открыть ворота 🎮 🥶 🧟

TheDarkestRed TheDarkestRed

Тренируем нового монстра 🎮🤺🧟
https://vk.com/the_darkestred

alexprey alexprey

Jusper, ну обычно целая война вокруг этого разворачивается

alexprey alexprey

Marketplace внутри Marketplace? Это что-то новенькое)

alexprey alexprey

CHILLNPLAY,

Да, я именно о таком и думал, чисто небольшие бои в рамках одной сессии, ради фана

CHILLNPLAY CHILLNPLAY

Jusper, Воспринимайте это не как дерево а как куст :)

CHILLNPLAY CHILLNPLAY

alexprey, Спасибо! Да в игре планируется мультиплеер. Как для прохождения компании, так и для сражения с друзьями на отдельной сцене (для внедрения глобального онлайн нужны ресурсы, который у нас нет)

CHILLNPLAY CHILLNPLAY

EfReeZe, Насчет андроида мы планируем, но наша тяжёлая история решила убрать данную платформу до релиза основной игры на ПК и Консоли.

Другие виды танков будут, и так же в игре планируется прокачка (благодаря тому что игру начали делать с нуля мы немного перепродумали с новым взглядом и кучей времени на тестирование старого билда...

...
CHILLNPLAY CHILLNPLAY

EfReeZe, Нет, он работал за оплату но без договора, по столько игру хотели сделать за пару месяцев. Так же мы не работали ранее с договорами и было какое-то доверие... Ее действительно сделать можно быстро было...

CHILLNPLAY CHILLNPLAY

Jusper, У нас ранее не было проблем с другими программистами. За 3 года практики и работой более 10 программистов, это первый индивидум был.

Но теперь с новым программистом мы подписали и в преть будем работать только на НДА

Логотип проекта Unity

Unity - SaveSystem Json

Всем привет. Заболел коронавирусом и сижу дома, балдею, наконец-то появилось время потыкать Юнити палкой.

Но ближе к делу: пытаюсь сделать сохранение 2 вводимых в строку переменных (name, age).
В интернетах прочитал про метод c json, и по примеру получилось это:

using System.Collections;
using System.Collections.Generic;
using System;
using System.IO;
using UnityEngine;

public class SaveSystem : MonoBehaviour
{
    public GameObject nameP;
    private Save sv = new Save();
    private string path; //Путь сохранения
    private void Start()
    {
        path = Path.Combine(Application.dataPath, "Save.json");
        if (File.Exists(path))
        {
            sv = JsonUtility.FromJson<Save>(File.ReadAllText(path));
            Debug.Log("Hello MY CaMRAD " + sv.name + "age " + sv.age);
        }
        else nameP.SetActive(true);
    }

    private void CheckName(string name)
    {
        if (!string.IsNullOrEmpty(name) && name.Length >= 3)
        {
            sv.name = name;
            Debug.Log("Ваше имя: " + name);
        }
        else Debug.Log("CaMRAD 4TO ZA DELA VVEDI нормальное имя");
    }
    private void CheckAge(string age)
    {
        if (!string.IsNullOrEmpty(age) && age.Length > 0)
        {
            sv.age = int.Parse(age);
            Debug.Log("Ваш возраст: " + age);
        }
        else Debug.Log("CaMRAD 4TO ZA DELA VVEDI нормальный возраст");
    }
    private void OnApplicationQuit()
    {
        File.WriteAllText(path, JsonUtility.ToJson(sv));
    }
 }

[Serializable]
public class Save
{
    public string name;
    public int age;
}

В примере автор добавляет скрипт к майн камере, а потом эту майн камеру через On End Edit (String) вешает на Input поле, где выбирает SaveSystem -> Dinamic String -> CheckName (и CheckAge).

У меня так и не получилось выйти на CheckName (и ChaechAge), хотел написать я, но пока писал данный текст я решил эту проблему, но через какой-то костыль. Я поменял

private void CheckName(string name)

на

public void CheckName(string name)

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

В примере автор добавляет скрипт к майн камере, а потом эту майн камеру через On End Edit (String) вешает на Input поле, где выбирает SaveSystem -> Dinamic String -> CheckName (и CheckAge).

Потом я меняю public на private в скрипте обратно, и о чудо оно работает как должно и так.

Я понимаю, что дебильно объяснил, потому что новичок и не знаком с терминологией, но я хотел бы узнать почему так получилось и мб есть ли какие-то грубые косяки со стороны кода?

Ответ

Посмотрел видео, посмотрел pastebin с кодом.
В обоих случаях переменные CheckAge и CheckName публичные и доступ через событие кнопки On End Edit получается без лишних костылей.

Прятать переменную в private не получится, потому что компилятор начнет ругаться, что к ней никто не обращается.

Смотрите также:


Комментарии



Брось ссылкой в оригинальную статью, по которой работаешь.

Jusper,

Брось ссылкой в оригинальную статью, по которой работаешь.

Посмотрел видео, посмотрел pastebin с кодом.
В обоих случаях переменные CheckAge и CheckName публичные и доступ через событие кнопки On End Edit получается без лишних костылей.

Прятать переменную в private не получится, потому что компилятор начнет ругаться, что к ней никто не обращается.

Поменяй сейчас все обратно на public и покажи мне как у тебя сделаны настройки на Input Field.

Действительно. Я наверное поехал просто и в глаза долблюсь.

ты про это?

Diabfall,

ты про это?

Да. Все заработало?

Jusper,

Diabfall,

ты про это?

Да. Все заработало?

Да. Спасибо.
А можешь подсказать статью про перенос данных между сценами? Я сам кучу всяких вариантов нарыл типа через префабы, статическую переменную, какие-то объекты, которые висят во всех сценах. Ну или способ реализации в 2-х словах, статью я сам найду.

Diabfall,

Ну или способ реализации в 2-х словах, статью я сам найду.

Взгляни на следующие способы:

  • Static переменные (жует int, bool, string, float, double)
  • Save/Load (в префсы, в жсон). Берешь то, что ты уже сделал в примере и пробуешь загрузить в другой сцене через класс DataSaver

-

Возможность добавлять комментарии была ограничена