c# - 对象不会在随机位置移动
问题描述
我无法理解问题是什么,检查员中的“文本”添加了。它应该可以工作,但根据“坏代码”没有任何效果。
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);
}
解决方案
posX
并且posY
只是保存值的局部变量。
通过分配一个新值posX
,posY
您只将值存储在局部变量中,但从不将其分配回对象位置。
如果你这样做
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);
}
推荐阅读
- amazon-athena - AWS Athena - 查询从 Glue 爬虫生成的大型外部表?
- javascript - 如果我将运算符声明为变量,我可以执行此命令模式吗?
- python - Python Threading Tkinter:为什么线程的第二次启动无法正常运行?
- c++ - C++:为什么我必须添加一个布尔表达式?
- swiftui - 在 SwiftUI 中从 macOS 上的列表中删除项目的鼠标手势是什么?
- python - 你可以同时运行 python wikipedia api 多次吗?
- oracle - 如何使用oracle编写查询以在同一表中以不同的别名列名在一行中显示两行
- r - 将字符转换为 R 中的时间(“2019-09-24D00:00:03.384309000”)
- validation - Angular 7 - 当用户在输入字段中输入时,如何使实际值大写?
- angular - 组件或服务上的角度本地存储?