如何使用枚举在两个脚本之间传递变量?

时间:2017-10-15 07:36:17

标签: c# unity3d enums unity5

第一个脚本:

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

传递变量长度

1 个答案:

答案 0 :(得分:0)

这里你不需要枚举,你需要一个类或结构。我打赌一个结构,因为它不能为空。

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;