gpt4 book ai didi

C# Unity 3D 在碰到另一个对象时更改变量

转载 作者:行者123 更新时间:2023-11-30 15:55:55 24 4
gpt4 key购买 nike

当他撞到某个对象(在本例中为常规立方体)时,我试图在我的“玩家”中设置一组变量。我还希望它只发生一次,而不是在玩家每次撞到对象时都继续添加这些值。

这是我的播放器代码,声明了我要更改的变量:

public class PlayerInfo : MonoBehaviour {
public static string Name;
public static int Level;
public static int Health;
public static int Damage;
public static float moveSpeed;

public float turnSpeed;
}

然后我有一个“玩家”会碰到的对象:

public class GiveHero : MonoBehaviour {

private void OnTriggerEnter(Collider other)
{
//Code to assign Name, Level, Health, Damage, moveSpeed, as set values.
}
}

所以我需要下面的代码来分配上面代码中的值。它们是两个独立的对象,位于两份独立的代码表中。

提前致谢!

最佳答案

除了如 Yotam 的回答中所述更改 PlayerInfo 变量之外,您还需要一种方法来确保此更改仅发生一次。您可以通过多种方式执行此操作,其中一些方式比其他方式更适合您的项目。您可以尝试:

  1. 在游戏对象上创建一个 bool 变量,当玩家与其发生碰撞时,该变量将从 False 变为 True。

  2. 在游戏对象与玩家发生碰撞并更改相应的 PlayerInfo 变量后销毁游戏对象。

关于C# Unity 3D 在碰到另一个对象时更改变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47732962/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com