【问题标题】:Setting Specific Borders in X and Y axis in Top-Down Game在 Top-Down 游戏中设置 X 和 Y 轴的特定边界
【发布时间】:2014-07-12 12:36:33
【问题描述】:

还有一个问题要问你。

我正在制作一个 2D 自上而下的平台游戏,玩家只能在 x 和 y 轴上移动。

我正在尝试设置地图的边界,以便玩家和所有其他对象无法越过它,但我尝试使用代码时出现错误:

“无法修改‘UnityEngine.Transform.position’的值类型返回值。考虑将值存储在临时变量中。”

这是我正在尝试的代码,它看起来很简单,但鉴于我的 C# 经验水平,我无法说出为什么不允许这样做:

使用 UnityEngine; 使用 System.Collections;

公共类 BorderScript : MonoBehaviour {

public Vector2 Position;

// Use this for initialization
void Start () {


}

// Update is called once per frame
void Update () {

    if (this.transform.position.x >= 50) {
        this.transform.position.x = 50;
            }

    if (this.transform.position.x <= -50) {
        this.transform.position.x = -50;
    }

    if (this.transform.position.y <= 50) {
        this.transform.position.y = 50;
    }

    if (this.transform.position.y <= -50) {
        this.transform.position.y = -50;
    }
}
}

在此先感谢各位,非常感谢您的帮助..

【问题讨论】:

    标签: c# unity3d


    【解决方案1】:

    在 C# 中,您不能一次修改单个轴的值。您必须重新分配整个向量:

    this.transform.position = new Vector3(transform.position.x, 50, transform.position.z);
    

    ,当您修改时,例如,Y轴等于50个单位(您的指令this.transform.position.y = 50;必须替换为我的指令,其他相应的)。

    【讨论】:

    • 感谢您的回答。非常感谢您的帮助:D
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-03-25
    • 1970-01-01
    • 1970-01-01
    • 2022-06-13
    • 1970-01-01
    • 1970-01-01
    • 2019-07-07
    相关资源
    最近更新 更多