0
私のコードに何か問題があります。割り当てられたキーコード "Z"を押すと、CurrentStateは1に変化せず、コンボ全体で進行します。私はdebug.logを入れようとしましたが、ボックスコライダーがZを押すと有効になりますが、その数は1だけ増えません。誰も助けてくれますか?ここにコードがあります。UNITY - 攻撃ヒットコンボコードエラー。助けが必要
パブリッククラスファイター:MonoBehaviour {
public Collider[] attackhitboxes;
public Animator art;
public int CurrentState = 0;
bool activateTimertoreset = false;
public float currentcombotimer;
float origTimer = 50f;
private void Start()
{
art = gameObject.GetComponent<Animator>();
origTimer = currentcombotimer;
}
void Update()
{
art.SetInteger("currentstate", CurrentState);
NewComboSystem();
ResetComboState(activateTimertoreset);
}
void ResetComboState(bool resettimer)
{
if(resettimer)
{
currentcombotimer -= Time.deltaTime;
if(currentcombotimer <= 0)
{
CurrentState = 0;
activateTimertoreset = false;
currentcombotimer = origTimer;
}
}
}
private void LaunchAttack(Collider col)
{
Collider[] cols = Physics.OverlapBox(col.bounds.center, col.bounds.extents, col.transform.rotation, LayerMask.GetMask("Hitbox"));
foreach(Collider c in cols)
{
if(c.transform.parent.parent == transform)
{
continue;
}
}
}
void NewComboSystem()
{
if (Input.GetKeyDown(KeyCode.Z))
{
activateTimertoreset = true;
CurrentState++;
if (CurrentState == 1)
{
LaunchAttack(attackhitboxes[0]);
}
if (CurrentState == 2)
{
LaunchAttack(attackhitboxes[0]);
}
if (CurrentState >= 3)
{
LaunchAttack(attackhitboxes[0]);
}
}
}
}
これは、 'Input.GetKeyDown'が' NewComboSystem() '関数にあり、' Update() '関数から100%呼び出されているので、**問題ありません。 – Programmer
それは問題のようには思われません。私はまだ先に進み、試しましたが、うまくいかなかったのです。私のコードに何が間違っているか他の提案? –
currentcombotimerは公開されているのでエディタに値を割り当てていますか?スクリプトには開始値はありません。開始機能では、それをorigTimerに割り当てます。この値がゼロの場合、コンボ時間はゼロになります。 – Colby