Javascript 坦克!Unity当前正在尝试添加健康拾取项目 void ontriggenter(碰撞器其他) { if(other.gameObject.CompareTag(“HealthPick”)) { m_CurrentHealth+=金额; other.gameObject.SetActive(false); SetHealthUI(); } 如果(m_CurrentHealth
要使碰撞在统一中工作,您需要执行以下操作:Javascript 坦克!Unity当前正在尝试添加健康拾取项目 void ontriggenter(碰撞器其他) { if(other.gameObject.CompareTag(“HealthPick”)) { m_CurrentHealth+=金额; other.gameObject.SetActive(false); SetHealthUI(); } 如果(m_CurrentHealth,javascript,unity3d,Javascript,Unity3d,要使碰撞在统一中工作,您需要执行以下操作: 将碰撞器组件附加到要成为碰撞一部分的每个对象。这可以是BoxCollider、SphereCollider等。任何形状都有意义 对于触发碰撞(即非物理碰撞),请在步骤1中创建的每个碰撞器组件上启用检查器中的Is trigger值 将刚体组件附加到要碰撞到其他物体的对象上。刚体组件价格昂贵,而且您不希望它们遍布整个场景,因此我建议您将其放在坦克上。您可能还必须启用Is motional属性,否则您的坦克可能表现不正常(设置中的信息很少,很难判断) 将一个
碰撞器
组件附加到要成为碰撞一部分的每个对象。这可以是BoxCollider
、SphereCollider
等。任何形状都有意义Is trigger
值刚体
组件附加到要碰撞到其他物体的对象上。刚体
组件价格昂贵,而且您不希望它们遍布整个场景,因此我建议您将其放在坦克
上。您可能还必须启用Is motional
属性,否则您的坦克代码>可能表现不正常(设置中的信息很少,很难判断)
储罐
,该储罐已实现方法OnTriggerEnter
。下面是一个示例公共级储罐:单一行为
{
//在编辑器中设置初始运行状况值。
[SerializeField]private int_initialHealth=100;
[SerializeField]私有int_maxHealth=100;
private int_health=-1;
私人空间
{
_健康=_初始健康;
}
私有void更新()
{
//你可能想在更新中检查这个,因为你想要坦克
//一死就死,而不仅仅是当你得到一份健康。
如果(_health)这里需要更多的信息。你能包括正在碰撞的游戏对象的快照吗?你的坦克对象是否有一个刚体和碰撞器?健康拾取是否有一个设置为触发的碰撞器?健康拾取是否正确标记了健康拾取(没有隐藏空格或大小写差异)是的,它是一个立方体,带有一个带触发器的盒子碰撞器,它也有一个刚性的身体,重力和kince都启用了,它是正确的,我分享了更多,但我不知道如何在这个网站上编辑第一篇文章,变量数量来自哪里?我给立方体添加了一个滑块,使它的值为20,认为它会增加20别这样,我想那是行不通的
void OnTriggerEnter(Collider other)
{
if (other.gameObject.CompareTag ("HealthPickUp"))
{
m_CurrentHealth += amount;
other.gameObject.SetActive (false);
SetHealthUI ();
}
if (m_CurrentHealth <= 0f && !m_Dead)
{
OnDeath ();
}
}