【发布时间】:2020-03-28 16:31:34
【问题描述】:
大家好,所以我的程序是一个非常简单的程序,我要做的是必须通过按 H 表示英雄或按 E 表示敌人伤害来摧毁其中一个对象,但我让它非常接近所以他们很快就倒下了,但经过数小时的尝试和谷歌搜索,我似乎无法弄清楚,请帮忙,因为它仍然无法正常工作:( 所以第一个脚本被放置在两个对象中,我有一个名为 Hero 的立方体和一个名为 Hero 的标签,第二个对象是一个名为 Enemy 的球体,与标签的名称相同。
这是他们都拥有的脚本:
public class Character : MonoBehaviour
{
public float HP = 100;
public float minDmg = 23f;
public float maxDmg = 25f;
// Start is called before the first frame update
void Start()
{
}
// Update is called once per frame
void Update()
{
}
public float DamageDealt()
{
float damage;
damage = Random.Range(minDmg, maxDmg);
return damage;
}
}
第二个脚本放在相机上,我认为应该没问题吗?
public class FightControl : MonoBehaviour
{
// Start is called before the first frame update
void Start()
{
GameObject _hero = GameObject.Find("Hero");
GameObject _villain = GameObject.Find("Enemy");
//object se pravi da bi moglo da se preuzme var iz Character u obkejtu _hero
Character chscript = _hero.GetComponent<Character>();
//object se pravi da bi moglo da se utice na hp u objectu _villain
Character chscripta = _villain.GetComponent<Character>();
if (Input.GetKeyDown(KeyCode.H))
{
float dmg = chscript.DamageDealt();
chscripta.HP = chscript.HP - dmg;
if (chscripta.HP <= 0)
{
Destroy(_villain);
}
}
if (Input.GetKeyDown(KeyCode.E))
{
Character chscript1 = _villain.GetComponent<Character>();
float dmg1 = chscript1.DamageDealt();
Character chscript1a = _hero.GetComponent<Character>();
chscript1a.HP -= dmg1;
if(chscript1a.HP <= 0)
{
Destroy(_villain);
}
}
}
// Update is called once per frame
void Update()
{
}
}
【问题讨论】:
-
“不工作”是什么意思?代码是否无法编译?请描述这里发生的事情。
-
可以编译,但没有结果。