我如何使用枚举在两个脚本之间传递变量?
How can i use enum to pass variables between two scripts?
第一个脚本:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class WallsTest : MonoBehaviour
{
public enum WallsInfo
{
Position, Length
};
// using a GameObject rather than a transform
public GameObject prefab;
public Vector3 wallsStartPosition;
public float width = 0;
public float height = 1;
public float length = 2;
public Camera wallsCamera;
void Start()
{
wallsCamera.transform.position = new Vector3(wallsStartPosition.x, wallsStartPosition.y + 100, wallsStartPosition.z - 235);
WallsInfo.Position = wallsStartPosition;
BuildWalls();
}
然后在另一个位置我想使用 WallsInfo.Position
但我不确定使用枚举传递变量是否是个好主意?以及如何去做?
行:
WallsInfo.Position = wallsStartPosition;
报错:
赋值的左边必须是变量,属性或索引器
而且我还想使用 Length
传递可变长度
这里不需要枚举,您需要 class 或结构。我赌一个结构,因为它不能为空。
public struct WallsInfo
{
public Vector3 Position { get; set; }
public float Length { get; set; }
};
另一方面,枚举用于存储一组常量命名值,这些值映射到数字以便更好地组织。例如,如果您想跟踪角色是男孩还是女孩。然后你可以只输入一个 int 并在你的脑海中说 1 表示男孩 2 表示女孩或者你可以这样做:
public enum Gender
{
Boy = 1
Girl =2
}
那就很容易有一个能存男孩女孩喜欢的角色
var gender = Gender.Boy;
第一个脚本:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class WallsTest : MonoBehaviour
{
public enum WallsInfo
{
Position, Length
};
// using a GameObject rather than a transform
public GameObject prefab;
public Vector3 wallsStartPosition;
public float width = 0;
public float height = 1;
public float length = 2;
public Camera wallsCamera;
void Start()
{
wallsCamera.transform.position = new Vector3(wallsStartPosition.x, wallsStartPosition.y + 100, wallsStartPosition.z - 235);
WallsInfo.Position = wallsStartPosition;
BuildWalls();
}
然后在另一个位置我想使用 WallsInfo.Position 但我不确定使用枚举传递变量是否是个好主意?以及如何去做?
行:
WallsInfo.Position = wallsStartPosition;
报错:
赋值的左边必须是变量,属性或索引器
而且我还想使用 Length
传递可变长度这里不需要枚举,您需要 class 或结构。我赌一个结构,因为它不能为空。
public struct WallsInfo
{
public Vector3 Position { get; set; }
public float Length { get; set; }
};
另一方面,枚举用于存储一组常量命名值,这些值映射到数字以便更好地组织。例如,如果您想跟踪角色是男孩还是女孩。然后你可以只输入一个 int 并在你的脑海中说 1 表示男孩 2 表示女孩或者你可以这样做:
public enum Gender
{
Boy = 1
Girl =2
}
那就很容易有一个能存男孩女孩喜欢的角色
var gender = Gender.Boy;