Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何编辑另一个游戏对象中的变量。(Unity C#)_C#_Variables_Unity3d - Fatal编程技术网

如何编辑另一个游戏对象中的变量。(Unity C#)

如何编辑另一个游戏对象中的变量。(Unity C#),c#,variables,unity3d,C#,Variables,Unity3d,请记住,我不善于团结 我有一个游戏对象,它有一个名为hp的变量。我有另一个带触发碰撞器的游戏对象。当触发器运行时,我希望它编辑变量hp,但我不知道如何编辑来自另一个游戏对象的变量 请给我一些帮助。在Unity中,触发碰撞时会调用OnTriggerEnter(碰撞器其他)函数 在函数的参数中,您得到一个名为other的碰撞器,它是对对象碰撞的碰撞器脚本的引用。与unity中的任何脚本一样,您可以调用other.gameObject来检索冲突的游戏对象。从那时起,您可以使用GetComponent函

请记住,我不善于团结

我有一个游戏对象,它有一个名为hp的变量。我有另一个带触发碰撞器的游戏对象。当触发器运行时,我希望它编辑变量hp,但我不知道如何编辑来自另一个游戏对象的变量


请给我一些帮助。

在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-=损失;
}
}

您能为您的代码添加一个最小且可验证的示例吗?否则我们就帮不了你了