嘿,每个人都需要帮助,我正在制作aRPG,并决定添加一些特殊攻击,一切进展顺利-但现在我似乎无法攻击敌人,但他仍然可以攻击我。
我将附加2个脚本,第一个是玩家战斗,第二个是特殊攻击脚本。我上次在编写特殊攻击代码,看来怎么也找不到导致问题的原因。
以下是玩家的战斗(仅附上重要内容):
void Update ()
{
if(Input.GetKeyDown(KeyCode.Space) && !specialAttack)
{
inAction = true;
}
if(inAction)
{
if(attackFunction (0, 1, KeyCode.Space))
{
}
else
{
inAction = false;
}
}
die ();
}
public bool attackFunction(int stunSeconds, double scaledDamage, KeyCode key)
{
if(Input.GetKey(key)&&inRange ())
{
GetComponent<Animation>().Play(attack.name);
ClickToMove.attack = true;
if(opponent!=null)
{
transform.LookAt(opponent.transform.position);
}
}
这是特殊的攻击脚本:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class SpecialAttack : MonoBehaviour
{
public combat player;
public KeyCode key;
public double damagePercentage;
public int stunTime;
public bool inAction;
void Update ()
{
if(Input.GetKeyDown(key) && !player.specialAttack)
{
player.resetAttackFunction();
player.specialAttack = true;
inAction = true;
}
if(inAction)
{
if(player.attackFunction(stunTime, damagePercentage, key))
{
}
else
{
inAction = false;
}
}
}
}
如果有人可以帮助我解决这个问题,我将不胜感激,我不知道出了什么问题,但是我感觉这是Special Attack脚本中的某个地方,因为动画似乎重置并且不让我攻击
请帮助:)
答案 0 :(得分:1)
inRange()函数内部可能存在某些内容。看来您在if语句中没有任何代码。
if(player.attackFunction(stunTime, damagePercentage, key))
{
}