مستقل ڈیٹا پاتھ کے ذریعہ بیان کردہ یونٹی کے تجویز کردہ فولڈر کے راستے پر ڈیٹا لکھیں

جب صفحے کی تازہ کاری :
صفحہ تخلیق تاریخ :

تصدیق کا ماحول

Windows
  • ونڈوز 11
یونٹی ایڈیٹر
  • 2021.3.3f1
ان پٹ سسٹم پیکیج
  • 1.3.0

اس ٹوٹکے کے لئے ضروری شرائط

مندرجہ ذیل ترتیبات اس ٹپ کی وضاحت کے لئے بنیاد کے طور پر پیشگی بنائی گئی ہیں۔

سب سے پہلے

پچھلے نکات میں ، PlayerPrefs ہم نے ڈیٹا کو محفوظ کرنے اور لوڈ کرنے کا طریقہ استعمال کیا۔ تاہم ، یہ بڑے ڈیٹا اور ڈیٹا شیئرنگ کو سنبھالنے کے نقطہ نظر سے استعمال کے لئے مناسب نہیں ہے۔

اس بار ، ہم ڈیٹا کو مقامی فولڈر ڈائریکٹری میں محفوظ اور لوڈ کریں گے۔ بنیادی طور پر ، آپ آزادانہ طور پر لکھنے کے مقام کی وضاحت کرسکتے ہیں ، لیکن یونٹی میں بیان کردہ persistentDataPath کو استعمال کرنا زیادہ فائدہ مند ہے ، لہذا اس بار ہم اسے استعمال کریں گے۔

یو آئی کی جگہ اور ہینڈلنگ

اس کے لئے ، ہم پچھلے ٹپ "پلیئر پریفس کا استعمال کرتے ہوئے ڈیٹا پڑھیں اور لکھیں" کا استعمال کریں گے ، لہذا یہ ہے۔ براہ کرم اس کا حوالہ دیں اور اسے اس مقام پر لاگو کریں جہاں آپ بٹن پروسیسنگ انجام دے سکیں۔

اتفاق سے، میں اس بار استعمال persistentDataPath ہونے والی قیمت کو ظاہر کرنے کے لئے ایک جگہ بھی رکھوں گا.

چیک کریں کہ فائل کو محفوظ کرنے کے لئے فولڈر کا راستہ کہاں ہے

آپ اس بار ڈیٹا کے Application.persistentDataPath فولڈر کے راستے کو استعمال کرنے کے لئے حاصل کرسکتے ہیں۔ سب سے پہلے، آئیے دکھاتے ہیں کہ مقام کہاں ہے.

Start آئیے ٹیکسٹ فیلڈ میں قدر ظاہر کرنے کا ایک طریقہ بنائیں۔

using System;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;

public class ButtonEvent : MonoBehaviour
{
  // 省略

  /// <summary>パステキスト。</summary>
  [SerializeField] Text TextPath;


  /// <summary>最初に一度だけ呼ばれます。</summary>
  private void Start()
  {
    TextPath.text = Application.persistentDataPath;
  }

  // 省略
}

جب آپ اسے چلاتے ہیں تو ، آپ کو نیچے کی طرف راستہ دیکھنا چاہئے۔

چونکہ ہم اس بار ونڈوز پر چل رہے ہیں ، لہذا راستہ اس طرح نظر آتا ہے۔ براہ کرم نوٹ کریں کہ پروجیکٹ کی ترتیبات میں عملدرآمد کرنے والے صارف اور "کمپنی کا نام" یا "پروڈکٹ نام" پر منحصر راستے کے مندرجات تبدیل ہوسکتے ہیں۔ گیم بناتے وقت ، گیم جاری ہونے سے پہلے "کمپنی کا نام" اور "پروڈکٹ نام" پر فیصلہ کریں اور بعد میں اسے تبدیل نہ کریں۔

یہ راستہ اس پلیٹ فارم پر منحصر ہے جس پر آپ چل رہے ہیں۔ ذیل میں سرکاری ویب سائٹ پر درج راستہ ہے۔ یہ آپ کے یونٹی کے ورژن پر منحصر ہوسکتا ہے ، لہذا اسے چلانا اور اسے چیک کرنا یقینی بنائیں۔

قیمت کو محفوظ کریں

جب تک آپ منزل کے راستے کا فیصلہ کرتے ہیں ، لکھنے اور پڑھنے کے اعداد و شمار کو .NET معیاری لائبریری کے ذریعہ سنبھالا جاسکتا ہے۔ اس بار ، ہم اعداد و شمار کو ایک کلاس میں جوڑ رہے ہیں اور جے ایس او این میں تار لکھ رہے ہیں اور تھوک میں تار لکھ رہے ہیں۔

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

public class ButtonEvent : MonoBehaviour
{
  // 省略

  /// <summary>セーブデータ。</summary>
  public class SaveData
  {
    public string Name;
    public string HP;
    public string Attack;
    public string Money;
  }

  /// <summary>
  /// 保存ボタンをクリックしたときの処理。
  /// </summary>
  public void OnClickSave()
  {
    // 保存するデータを作成
    var data = new SaveData()
    {
      Name = InputFieldName.text,
      HP = InputFieldHP.text,
      Attack = InputFieldAttack.text,
      Money = InputFieldMoney.text,
    };

    // オブジェクトを JSON 文字列にシリアライズ
    var json = JsonUtility.ToJson(data);

    // 所定の場所にテキストファイルとして保存
    File.WriteAllText(Path.Combine(Application.persistentDataPath, "SaveData.txt"), json);

    Debug.Log("保存しました。");
  }

  // 省略
}

پچھلے نکات کے مندرجات کو .NET معیاری لائبریری کی حمایت حاصل ہے ، لہذا مجھے نہیں لگتا کہ کچھ خاص طور پر مشکل ہے۔ چلو پہلے اسے چلائیں اور اسے محفوظ کریں.

اگر آپ راستے کے مقام کو دیکھتے ہیں تو ، آپ دیکھیں گے کہ فائل محفوظ ہے۔

جب آپ ٹیکسٹ فائل کھولتے ہیں تو ، آپ دیکھ سکتے ہیں کہ آپ کا ان پٹ جے ایس او این فارمیٹ میں محفوظ ہے۔

ہم ایک کلاس استعمال کر رہے ہیں تاکہ ہم اس بار آسانی سے فائلیں لکھ سکیں File ،StreamWriter لیکن اگر ہم دوسری کلاسوں کا استعمال کرتے ہیں تو کوئی مسئلہ نہیں ہے جیسے ۔

ایک محفوظ قیمت حاصل کریں

مجھے نہیں لگتا کہ یہ پڑھنا مشکل ہے.

/// <summary>
/// 読み込みボタンをクリックしたときの処理。
/// </summary>
public void OnClickLoad()
{
  // 保存されているテキストファイルを読み込む
  var json = File.ReadAllText(Path.Combine(Application.persistentDataPath, "SaveData.txt"));

  // JSON テキストから指定したオブジェクトにデシリアライズ
  var data = JsonUtility.FromJson<SaveData>(json);

  // 読み込んだ値を各フィールドにセット
  InputFieldName.text = data.Name;
  InputFieldHP.text = data.HP;
  InputFieldAttack.text = data.Attack;
  InputFieldMoney.text = data.Money;

  Debug.Log("読み込みました。");
}

آپ محفوظ شدہ متن کو پڑھ سکتے ہیں اور اسے بحال کرنے کے طریقہ کار کے ساتھ JsonUtility.FromJson جے ایس او این سٹرنگ کو ڈی سیریلائز کرسکتے ہیں۔

کھیل کو چلانے کی کوشش کریں اور خالی بٹن سے لوڈ پر کلک کرکے ان پٹ فیلڈ آباد ہے۔

خلاصہ

Application.persistentDataPath میں استعمال کرتے ہوئے مخصوص مقام پر ڈیٹا پڑھنے اور لکھنے کے قابل تھا۔ اسے ایک فائل کے طور پر محفوظ کیا جاسکتا ہے ، لہذا بہت بڑا ڈیٹا اسٹور کرنا بھی ممکن ہے۔ تاہم ، اس فولڈر کے راستے میں ذخیرہ کردہ ڈیٹا کو متعدد ماحول میں ہم آہنگ کیا جاسکتا ہے ، لہذا اگر آپ یہ فرض کرتے ہیں تو ، آپ کو غور کرنا چاہئے کہ آیا کسی بڑی فائل کو محفوظ کرنا ہے یا اسے کسی دوسرے مقام پر محفوظ کرنا ہے۔