我在 Unity 中的战斗脚本有点不起作用
Posted
技术标签:
【中文标题】我在 Unity 中的战斗脚本有点不起作用【英文标题】:My Combat Script in Unity is Kinda not Working 【发布时间】:2021-11-28 10:30:15 【问题描述】:我在 Unity 中编写了一个战斗脚本,它可以工作......有点,因为如果我将 startTimeBtwAttack 浮点数设置为更高的 0,它就会停止工作,是的,我知道我的脚本非常长,但如果你有耐心的话和善良,然后请帮助我,这是代码。
using System.Collections;
使用 System.Collections.Generic; 使用 UnityEngine;
公共类 PlayerCombat : MonoBehaviour 私人玩家移动速度;
public bool hasSword = true;
private float timeBtwAttack;
public float startTimeBtwAttack;
public Animator animator;
public Transform attackPos;
public float attackRange;
public LayerMask whatIsEnemies;
public int damage;
public Audiosource swordSrc;
public AudioClip swordClip;
public float startDazedTime;
private float dazedTime;
private float attackTime = .25f;
private float attackCounter = .25f;
private bool isAttacking;
void Start()
speed = FindObjectOfType<PlayerMovement>();
void Update()
if (hasSword == true)
if (dazedTime <= 0)
speed.MovementSpeed = 5f;
else
speed.MovementSpeed = 0f;
dazedTime -= Time.deltaTime;
if (timeBtwAttack <= 0)
timeBtwAttack = startTimeBtwAttack;
if(isAttacking)
attackCounter -= Time.deltaTime;
if (attackCounter <= 0)
animator.SetBool("isAttacking", false);
isAttacking = false;
if (Input.GetKeyDown(KeyCode.X))
dazedTime = startDazedTime;
attackCounter = attackTime;
animator.SetBool("isAttacking", true);
swordSrc.PlayOneShot(swordClip);
isAttacking = true;
Collider2D[] enemiesToDamage = Physics2D.OverlapCircleAll(attackPos.position, attackRange, whatIsEnemies);
for (int i = 0; i < enemiesToDamage.Length; i++)
enemiesToDamage[i].GetComponent<EnemyScript>().TakeDamage(damage);
else
timeBtwAttack -= Time.deltaTime;
void OnDrawGizmosSelected()
Gizmos.color = Color.red;
Gizmos.DrawWireSphere(attackPos.position, attackRange);
【问题讨论】:
这些信息不足以提供任何帮助。请提供您的代码副本以及有关该问题的更多详细信息。 【参考方案1】:timeBtwAttack = startTimeBtwAttack;
应该在if (Input.GetKeyDown(KeyCode.X))
内。
按照目前的方式,您只需每“startTimeBtwAttack”秒检查 1 帧中的 X 输入。冷却时间应该只在你开始攻击时应用。
【讨论】:
非常感谢!以上是关于我在 Unity 中的战斗脚本有点不起作用的主要内容,如果未能解决你的问题,请参考以下文章
Unity VSCode Intellisense 在 2020 版本中不起作用