【问题标题】:Object does not move in random position [closed]对象不会在随机位置移动[关闭]
【发布时间】:2020-06-26 15:03:49
【问题描述】:

我不明白问题出在哪里,检查器中的“文本”添加了。 它应该可以工作,但根据“坏代码”没有任何效果。

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


【解决方案1】:

posXposY 只是保存值的局部变量。

通过为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);
}

【讨论】:

    猜你喜欢
    • 2017-03-26
    • 2021-12-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-03-12
    • 2018-04-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多