【发布时间】:2020-09-03 22:43:04
【问题描述】:
我有一个脚本,它从一个脚本中获取一个转换值,该脚本通过使用它的更新方法完成获取操作,并且我在另一个脚本中获取它之后使用这个值,该脚本也在其更新方法中使用这个值。所以,我想做的是,一旦我得到了这个值,我希望这个值是相同的,即使它的起始值发生了变化。我无法在启动函数中分配它们,因为一切都发生在运行时。我试图创建一个方法来分配这个值,即使我使用了一个导致该方法被调用一次的 if 语句,它仍然会改变它的值。
这是我使用的代码行,它们都在 Update 方法中。
void Update()
{
Debug.Log(i);
if (DragAndDrop.finding == true)
{
B = DragAndDrop.lastposofmodel;
在这里我使用分配的值
if (modelobject.collider.gameObject.GetComponent<MeshRenderer>().enabled == true)
{
repmodel = modelobject.collider.gameObject;
finding = true;
modelobject.collider.gameObject.transform.position = new Vector3(modelobject.collider.gameObject.transform.position.x,
modelobject.collider.gameObject.transform.position.y,
modelobject.collider.gameObject.transform.position.z - 0.1f);
lastposofmodel = modelobject.collider.gameObject.transform;
这是赋值的地方。
我该如何解决这个问题?
【问题讨论】:
-
抱歉,我不明白您的目标/问题到底是什么……您能否为您的代码添加更多上下文?
-
我想要做的是,在使用您看到的第二个脚本获取值之后,将该值分配给您可以从第一个脚本中看到的另一个值,并保持该值即使在更新方法中也一样。
-
那么为什么不应该保持不变呢?您的第二个脚本是否同时更改它?也许这样说就足够了,例如
if(!B) B = DragAndDrop.lastposofmodel;?所以B永远保持不变,除非它被销毁 -
为什么不一样,我认为是因为它们在更新方法中,但我会尝试你的建议。
-
好吧,很难说何时以及如何准确地调用底部代码块,以及为什么需要通过多个脚本传递引用