- 已关闭**。此问题需要details or clarity。当前不接受答案。
- 想要改进此问题?**添加详细信息并通过editing this post阐明问题。
2天前关闭。
Improve this question
我在Unity中使用C#,遇到了这个奇怪的问题。
我有两个类,* PlayerController * 和 * Meteor *。我在Meteor中使用了播放器控制器的示例,但它们看起来不一样。代码如下:
class PlayerController
{
void Update()
{
Debug.Log(isShaking);
if(powerUp.shake)
{
isShaking = true;
}
if(isShaking)
{
shakingTimer += Time.deltaTime;
if(shakingTimer >= 15)
{
shakingTimer = 0;
isShaking = false;
}
}
}
}
class Meteor
{
// OP: Add your player controller declaration and assignment here.
void Update()
{
Debug.Log(playerController.isShaking);
}
}
在控制台中,类中包含isShaking
的日志:
- 播放器控制器 * 返回TRUE,
- 流星 * 返回FALSE
我想我调用了相同的变量...我该如何修复这个问题?
我搜索了其他脚本以查看是否有其他语句更改isShaking
,但没有找到任何语句。
1条答案
按热度按时间jobtbby31#
正如您所解释的,您似乎从不同的
playerController
示例获取日志。我不确定如何在Meteor类上分配播放器控制器,但如果不是公共的,请尝试将其设置为
[SerializeField]
,以便在检查器中分配。每个玩家应该只有一个 * PlayerController * 组件,可能在玩家游戏对象上,然后在需要访问该类的示例时从该游戏对象中获取该组件。
另外,为了避免接收过多日志,请将日志放在更改变量的块中,例如:
x一个一个一个一个x一个一个二个x