Dictionary 试图了解如何访问对象/脚本之外的词典
我想我根本不懂字典。我知道如何设置它们并从同一个脚本/对象访问它们,但当涉及到从非父/子对象的不同对象/脚本访问它们时,我不知道我在做什么。这是我为保存字典的游戏对象编写的脚本:Dictionary 试图了解如何访问对象/脚本之外的词典,dictionary,unity3d,Dictionary,Unity3d,我想我根本不懂字典。我知道如何设置它们并从同一个脚本/对象访问它们,但当涉及到从非父/子对象的不同对象/脚本访问它们时,我不知道我在做什么。这是我为保存字典的游戏对象编写的脚本: using UnityEngine; using System.Collections; using System.Collections.Generic; public class HeroStats : MonoBehaviour { //Dictionary Structure <Key, va
using UnityEngine;
using System.Collections;
using System.Collections.Generic;
public class HeroStats : MonoBehaviour {
//Dictionary Structure <Key, value>
Dictionary<string,int> HeroStat = new Dictionary<string,int>();
Dictionary<string,string>HeroName = new Dictionary<string,string>();
Dictionary<string,string>StatDef = new Dictionary<string,string>();
//Initialization:
void Start(){
//===NAME==========================
HeroName.Add("Name","Insert Name");
//===STATS=========================
HeroStat.Add("Constitution", 3);
HeroStat.Add("Dexterity", 3);
HeroStat.Add("Intelligence", 3);
HeroStat.Add("Strength", 3);
HeroStat.Add("Wisdom", 3);
//===STAT DEFINITION==============
StatDef.Add("Constitution", "Your Overall Healthiness");
print (HeroName["Name"]);
print (HeroStat["Strength"]);
}
}
使用UnityEngine;
使用系统集合;
使用System.Collections.Generic;
公共类HeroStats:单行为{
//词典结构
Dictionary HeroStat=新字典();
DictionaryHeroName=新字典();
DictionaryStatDef=新字典();
//初始化:
void Start(){
//==姓名==========================
名称。添加(“名称”、“插入名称”);
//==统计数据=========================
添加(“宪法”,第3页);
添加(“灵巧”,3);
HeroStat.添加(“情报”,第3页);
添加(“强度”,3);
添加(“智慧”,第3页);
//==统计定义==============
添加(“体质”、“你的整体健康”);
打印(HeroName[“Name”]);
印刷品(HeroStat[“强度]);
}
}
这是我试图用来访问字典的脚本:
using UnityEngine;
using UnityEngine.UI;
using System.Collections;
using System;
public class heroName : MonoBehaviour {
public HeroStats heroStats;
public Text text;
public string lookUp;
public string what;
// Use this for initialization
void Start(){
heroStats = FindObjectOfType<HeroStats>();
what = heroStats.GetType().GetField("Name").GetValue(this).ToString();
text = gameObject.GetComponent<Text>();
lookUp = this.gameObject.name;
}
void Update(){
}
}
使用UnityEngine;
使用UnityEngine.UI;
使用系统集合;
使用制度;
公共类名称:MonoBehavior{
公共HeroStats HeroStats;
公共文本;
公共字符串查找;
公共字符串是什么;
//用于初始化
void Start(){
heroStats=FindObjectOfType();
what=heroStats.GetType().GetField(“Name”).GetValue(this.ToString();
text=gameObject.GetComponent();
lookUp=this.gameObject.name;
}
无效更新(){
}
}
我只是不知道我现在在做什么,也不知道谷歌应该做什么。我看过的每个视频/教程都会显示他们从同一脚本/对象访问字典。字典只是存储数据的一种方式。就像int或字符串一样。您需要在外部脚本中访问词典 您需要在HeroStats中公开您的字典,然后在heroName中只需
heroStats.HeroStat["Constitution"]
哦,我的上帝。。。我完全想念公众。哇,在过去的3个多小时里(现在是早上5点),我一直在读字典,但我从来没有想过要把我的字典公之于众。。。非常感谢你Atra。。。天哪。。。我应该去睡觉了,我知道这是答案,但我想补充一些重要的东西。把你的字典公之于众不是个好主意。最好的方法是创建一个可以更新或访问字典的公共函数。例如,public updateJetro(字符串值){heroStats.HeroStat[Value];}