如何编辑另一个游戏对象中的变量。(Unity C#)
请记住,我不善于团结 我有一个游戏对象,它有一个名为hp的变量。我有另一个带触发碰撞器的游戏对象。当触发器运行时,我希望它编辑变量hp,但我不知道如何编辑来自另一个游戏对象的变量如何编辑另一个游戏对象中的变量。(Unity C#),c#,variables,unity3d,C#,Variables,Unity3d,请记住,我不善于团结 我有一个游戏对象,它有一个名为hp的变量。我有另一个带触发碰撞器的游戏对象。当触发器运行时,我希望它编辑变量hp,但我不知道如何编辑来自另一个游戏对象的变量 请给我一些帮助。在Unity中,触发碰撞时会调用OnTriggerEnter(碰撞器其他)函数 在函数的参数中,您得到一个名为other的碰撞器,它是对对象碰撞的碰撞器脚本的引用。与unity中的任何脚本一样,您可以调用other.gameObject来检索冲突的游戏对象。从那时起,您可以使用GetComponent函
请给我一些帮助。在Unity中,触发碰撞时会调用
OnTriggerEnter(碰撞器其他)
函数
在函数的参数中,您得到一个名为other
的碰撞器,它是对对象碰撞的碰撞器脚本的引用。与unity中的任何脚本一样,您可以调用other.gameObject
来检索冲突的游戏对象。从那时起,您可以使用GetComponent
函数查找对象上的脚本
在您的情况下,假设您有一个对象,您将此脚本放在该对象上:
public class Player : MonoBehaviour {
public float hp;
}
您需要创建另一个处理冲突的脚本。把这个放在与玩家碰撞的物体上
public class Obstacle : MonoBehaviour
{
public float damages;
private void OnTriggerEnter(Collider other)
{
if(!other.gameObject.HasComponent<Player>())
return;
var player = other.gameObject.GetComponent<Player>();
player.hp -= damages;
}
}
公共类障碍:单一行为
{
公众漂浮物损害赔偿;
专用空对撞机(对撞机其他)
{
如果(!other.gameObject.HasComponent())
回来
var player=other.gameObject.GetComponent();
player.hp-=损失;
}
}
您能为您的代码添加一个最小且可验证的示例吗?否则我们就帮不了你了