質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

89.25%

アイテムボックスのセーブがしたいです。

受付中

回答 0

投稿 編集

  • 評価
  • クリップ 0
  • VIEW 64

sho0

score 4

前提・実現したいこと

アイテムボックスのセーブがしたいです。

発生している問題・エラーメッセージ

アイテムバックのシーンから、main6のシーンに遷移する時にデータ保存をしたいです。

スタート時にgameobjectのSlotgridにアイテムが入るようになっていて、その後、装備する為に、PlayerSlotにドロップして使用しております。また装備を外す時は、PlayerSlotからSlotgridにドロップしております。
シーンが変わってもこの行き来のセーブがしたいです。

![イメージ説明
イメージ説明
イメージ説明
イメージ説明
イメージ説明

Assets/itemmain6.cs(23,9): error CS0103: The name 'SaveSystem' does not exist in the current context
Assets/itemmain6.cs(22,42): error CS0103: The name 'slotPrefab' does not exist in the current context
Assets/itemmain6.cs(22,21): error CS0103: The name 'SlotGrid' does not exist in the current context
Assets/itemmain6.cs(22,6): error CS0103: The name 'Data' does not exist in the current context
Assets/Scripts/SlotGrid.cs(21,9): error CS0131: The left-hand side of an assignment must be a variable, property or indexer
Assets/save/UserData.cs(12,51): error CS0120: An object reference is required for the non-static field, method, or property 'Component.transform'
Assets/save/UserData.cs(12,39): error CS0103: The name 'slotPrefab' does not exist in the current context

該当のソースコード

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.SceneManagement;

public class itemmain6 : MonoBehaviour
{
    // Start is called before the first frame update
    void Start()
    {

    }

    // Update is called once per frame
    void Update()
    {

    }

     public void OnClick()
    {
     Data.gotItem = SlotGrid.Instantiate(slotPrefab, this.transform);
        SaveSystem.Instance.Save();
    SceneManager.LoadScene("main6");
    }

}
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

namespace WBMap
{
    [System.Serializable]
public class UserData 
{
  public Vector3 Pos =Vector3.zero;
    public int ihp = 100;
    public Item gotItem = Instantiate(slotPrefab, SlotGrid.transform);
}
}
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

namespace WBMap{
public class SlotGrid : MonoBehaviour
{
[SerializeField]
private GameObject slotPrefab;

private int slotNumber = 20;

[SerializeField]
private Item[] allItems;

    // Start is called before the first frame update
    void Start()
    {
        for (int i = 0; i < slotNumber; i++)
        {
        Instantiate(slotPrefab, this.transform) = SaveSystem.Instance.UserData.gotItem;

        GameObject slotObj = Instantiate(slotPrefab, this.transform);

        Slot slot = slotObj.GetComponent<Slot>();

        if (i<allItems.Length)
        {
        slot.SetItem(allItems[i]);
        }
        else
        {
        slot.SetItem(null);
        }
        }
    }

    // Update is called once per frame
    void Update()
    {

    }
}
}
```Hand  
using System.Collections;  
using System.Collections.Generic;  
using UnityEngine;  

public class Hand : MonoBehaviour  
{  
private Item grabbingItem;  
// Start is called before the first frame update  

// Update is called once per frame  
void Update()  
{  
this.transform.position = Input.mousePosition;  
}  
public Item GetGrabbingItem()  
{  
Item oldItem = grabbingItem;  
grabbingItem = null;  
return oldItem;  
}  

public void SetGrabbingItem( Item item)  
{  
grabbingItem = item;  
}  

public bool IsHavingItem()  
{  
return grabbingItem != null;  
}  
}  
using System.Collections;  
using System.Collections.Generic;  
using UnityEngine;  
using UnityEngine.UI;  
using UnityEngine.EventSystems;  

namespace WBMap{  

public class PlayerSlot : Slot  
{  


private Player player;  

public Player MyPlayer { get => player; private set => player = value; }  
// Start is called before the first frame update  

protected override void Start()  
{  
base.Start();  

MyPlayer = FindObjectOfType<Player>();  
}  



public override void SetItem(Item item)  
{  
MyPlayer.Removeitem(MyItem);  
MyPlayer.SetItem(item);  



if (item!=null)  
{  
itemImage.color = new Color(1, 1, 1, 1);  
itemImage.sprite = item.MyItemImage;  
}  
else  
{  
itemImage.color = new Color(0, 0, 0, 0);  
}  
MyItem = item;  
}  
}  
}  
```ここに言語名を入力
ソースコード

試したこと

ここに問題に対して試したことを記載してください。

補足情報(FW/ツールのバージョンなど)

ここにより詳細な情報を記載してください。

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 過去に投稿した質問と同じ内容の質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

質問への追記・修正の依頼

  • y_waiwai

    2020/05/24 07:27

    で、しつもんはなんでしょうか

    キャンセル

  • sho0

    2020/05/24 13:54

    スタート時にgameobjectのSlotgridにアイテムが入るようになっていて、その後、装備する為に、PlayerSlotにドロップして使用しております。また装備を外す時は、PlayerSlotからSlotgridにドロップしております。
    シーンが変わってもこの行き来のセーブがしたいです。

    キャンセル

まだ回答がついていません

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 89.25%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる