簡體   English   中英

如何使用枚舉在兩個腳本之間傳遞變量?

[英]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傳遞可變長度

您不需要枚舉,這里需要類或結構。 我打賭一個結構,因為它不能為空。

public struct WallsInfo
{
    public Vector3 Position { get; set; }
    public float Length { get; set; }
};

另一方面,枚舉用於存儲常量命名值的集合,這些值映射為數字以便更好地組織。 例如,如果您想跟蹤角色是男孩還是女孩。 然后,您可以輸入一個整數,然后說1表示男孩2表示女孩在您的頭上,或者您可以這樣做:

public enum Gender
{
    Boy = 1
    Girl =2
}

那么很容易有一個可以像這樣存儲男孩或女孩的角色

var gender = Gender.Boy;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM