首页 > 解决方案 > 对象不会在随机位置移动

问题描述

我无法理解问题是什么,检查员中的“文本”添加了。它应该可以工作,但根据“坏代码”没有任何效果。

public Text hy;
private void Start()
{
    float posX = hy.transform.position.x;
    float posY = hy.transform.position.y;
    posX = Random.Range(-400f,400f);
    posY = Random.Range(-400f, 400f);
}

标签: c#unity3d

解决方案


posX并且posY只是保存值的局部变量。

通过分配一个新值posXposY您只将值存储在局部变量中,但从不将其分配回对象位置。

如果你这样做

float posX = hy.transform.position.x;

接着

posX = Random.Range(-400f,400f);

posX您只在...中存储一个新值,它float绝不是“链接”到的,hy.transform.position.x因此它们不会自动同步。

如果您愿意,它只会复制该值。

您必须实际为 分配一个新向量hy.transform.position才能移动它!你想做的是

private void Start()
{
    float posX = Random.Range(-400f, 400f);
    float posY = Random.Range(-400f, 400f);

    hy.transform.position = new Vector3(posX, posY);
}

推荐阅读