public class L1 : MonoBehaviour
{
void Start()
{
//PlayerPrefs是unity提供的可以用于存储读取玩家数据的公共类
//PlayerPrefs的数据存储类似于键值对存储
//提供了3种数据存储方法 int float string
//键:string类型
//值 int float string对应3种API
PlayerPrefs.SetInt("myAge", 18);
PlayerPrefs.SetFloat("myHeight", 155.5f);
PlayerPrefs.SetString("myName", "Robto");
//以上直接调用set相关方法只会把数据存到内存里
//当unity会自动把数据存到硬盘中
//如果游戏没有正常结束,数据会直接丢失
//只要调用下面这个代码就会把数据马上存储到硬盘中
PlayerPrefs.Save();
//如果想通过其他类型的数据只能降低精度或者上升精度
bool gender = true;
PlayerPrefs.SetInt("gender", gender ? 1 : 0);
//如果相同键名,前面的数据会被覆盖
//读取
//如果Set过数据,也能马上在内存中读取到
int age = PlayerPrefs.GetInt("myAge");
//如果找不到myAge对应的值,就会返回第二个参数
age = PlayerPrefs.GetInt("myAge",100);
float height = PlayerPrefs.GetFloat("myHeight",1000);
string name = PlayerPrefs.GetString("myName","human");
//判断数据是否存在
if(PlayerPrefs.HasKey("myName"))
{
}
//删除指定键值对
PlayerPrefs.DeleteKey("myAge");
//删除所有数据
PlayerPrefs.DeleteAll();
}
}
public class Father { }
public class son { }
public class l3 : MonoBehaviour
{
// Start is called before the first frame update
void Start()
{
//判断一个类型的对象是否可以让另一个类型为自己分配空间
Type fType = typeof( Father );
Type sType = typeof(son);
if(fType.IsAssignableFrom(sType))//father = new son
{
Father f = Activator.CreateInstance( sType ) as Father;
print( f );
}
//通过反射来获取泛型类型
List<string> list = new List<string>();
Type listType = list.GetType();
Type[] types = listType.GetGenericArguments();
print(types[0] );
Dictionary<string,float> dict = new Dictionary<string,float>();
Type dicType = dict.GetType();
types = dicType.GetGenericArguments();
}
}