处理矢量时的正确语法是什么
本文关键字:语法 是什么 处理 | 更新日期: 2023-09-27 18:26:48
所以我正在制作一个保存和加载玩家坐标的按钮,这样,如果玩家在飞机上向左走5步,当我单击保存、离开,然后单击加载时,我将在这5步的左边。我最近完成了一个问题的代码,我不知道处理vector3时的正确语法是什么。以下是我的代码:
反馈总是值得赞赏的;)
Vector3 lastPosx = Player.transform.position.x;
Vector3 lastPosy = Player.transform.position.y;
Vector3 lastPosz = Player.transform.position.z; //Vector3,int or float
//Creates A Variable Called lastPosition Which is The Postion Of My Character
PlayerPrefs.SetFloat ("X", lastPosx);
PlayerPrefs.SetFloat ("Y", lastPosy);
PlayerPrefs.SetFloat ("Z", lastPosz);//SetFloat Or Setint?
}
public void Load()
{
//Float ,int or vector3?
float teleportx = PlayerPrefs.GetFloat("X");
float teleporty = PlayerPrefs.GetFloat ("Y");
float teleportz = PlayerPrefs.GetFloat ("Z");//GetFloat Or Getint?
Player.transform.position = new Vector3(teleportx, teleporty, teleportz);
}
Vector3
类存储三维坐标的所有三个分量,因此不需要像创建三个单独的Vector3
对象那样。
但是在保存时,您不需要创建Vector3
——您可以直接使用转换中的值,然后在Load()
方法中创建Vector3
。
public void Save()
{
PlayerPrefs.SetFloat("X", Player.transform.position.x);
PlayerPrefs.SetFloat("Y", Player.transform.position.y);
PlayerPrefs.SetFloat("Z", Player.transform.position.z);
}
public void Load()
{
// Vector3 has a constructor that takes 3 floats
// Vector3(float x, float y, float z)
Vector3 lastPosition = new Vector3(PlayerPrefs.GetFloat("X"),
PlayerPrefs.GetFloat("Y"),
PlayerPrefs.GetFloat("Z"));
Player.transform.position = lastPosition;
}