【问题标题】:Choosing which save file to load in Unity?选择在 Unity 中加载哪个保存文件?
【发布时间】:2017-05-24 21:55:29
【问题描述】:

所以,我已经设法设置程序以使用任何文件名进行保存,并且我已经可以轻松地在 foreach 循环中将它们全部提取出来。我怎样才能从那里用这些保存文件填充 Unity 中的滚动视图列表?比如,像这样:

每个保存文件都会在滚动视图中占一行,可以选择一个,你可以点击“加载游戏”,它就会加载。

【问题讨论】:

  • 您愿意分享您的代码吗?
  • 在这一点上,我真的没有任何关于它的信息。我正在考虑做类似 foreach(list_of_files 中的文件)之类的事情,但我不知道如何使用按钮来扩展 ScrollView。
  • 检查我的答案

标签: c# unity3d


【解决方案1】:

这里有一个简短的教程如何做到这一点:

DynamicScrollView.cs

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

public class DynamicScrollView : MonoBehaviour 
{
    public GameObject Prefab;
    public Transform Container;
    public List<string> files = new List<string>();

    void Start()
    {
//      files =  // LOAD FILE NAMES HERE.

        for (int i = 0; i < files.Count; i++)
        {
            GameObject go = Instantiate(Prefab);
            go.GetComponentInChildren<Text>().text = files[i];
            go.transform.SetParent(Container);
            go.transform.localPosition = Vector3.zero;
            go.transform.localScale = Vector3.one;
            int buttonIndex = i;
            go.GetComponent<Button>().onClick.AddListener(() => OnButtonClick(buttonIndex));
        }
    }



    public void OnButtonClick(int index)
    {
        string file = files[index];

        Debug.Log(file);
        // Process file here...
    }
}

【讨论】:

  • 这绝对令人难以置信。谢谢。
  • 我很乐意提供帮助。请投票并接受答案。
  • 我还有一个问题——我看到您在创建 ScrollView 时删除了 Scrollbars。我怎样才能在不搞砸显示器的情况下实现一个(正如我在尝试时发现它显然那样)?
  • 你想使用滚动条吗?
  • 是的,我想使用垂直滚动条。
【解决方案2】:

您可以拥有一个文件,其中包含有关所有文件的一些信息...例如,您的主文件可能包括 - 多少 - 姓名 - 关于保存的一些数据 - 创建日期?

然后加载该文件并从那里获取所有信息,然后在进行新保存时打开该文件并添加相同的信息

【讨论】:

    猜你喜欢
    • 2016-12-22
    • 1970-01-01
    • 1970-01-01
    • 2019-04-01
    • 2017-02-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-25
    相关资源
    最近更新 更多