深圳政协委员钟帆飞诈骗30亿

主持正义

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理
  27 随笔 :: 0 文章 :: 90 评论 :: 56257 阅读

功能:实现点击键盘F键,怪物血量条减少,并且假定是近战,需要对距离进行判断,距离小于一定值的时候按F才会减少怪物的血条。

新建c#脚本PlayerAttack,绑定到Player,并在unity里将敌人拖动到target属性上。

复制代码
public class PlayerAttack : MonoBehaviour {
    public GameObject target;
    // Use this for initialization
    void Start () {
    
    }
    
    // Update is called once per frame
    void Update () {
        if (Input.GetKeyUp (KeyCode.F)) {
            Attack();
        }
    }

    private void Attack(){
        EnemyHealth eh = (EnemyHealth)target.GetComponent("EnemyHealth");    
        eh.AddjustCurrentHealth(-10);
    }
}
复制代码

因为之前的EnemyHealth脚本里的AddjustCurrentHealth没有设置public所以存在无法访问该方法,设置一下就好了。
运行,点击F键,怪物血量条减少10(为了方便调试,先禁止掉Enemy的EnemyAI组件)

然后走进怪物,在距离差不多的时候计算一下距离,然后用这个距离做限制攻击范围,

在Attack里添加测试代码

1
Debug.WriteLine(Vector3.Distance (target.transform.position, transform.position));

按ctrl+shift+c调出输出窗口,运行查看

发现距离2的时候就差不多了,那就将2作为近战的距离范围,超过2的时候按F不算攻击。

    private void Attack(){
        if (Vector3.Distance (target.transform.position, transform.position) < 2) {
            EnemyHealth eh = (EnemyHealth)target.GetComponent ("EnemyHealth");    
            eh.AddjustCurrentHealth (-10);
        }
    }

 

 

posted on   jayce80  阅读(576)  评论(0编辑  收藏  举报
编辑推荐:
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
阅读排行:
· 单线程的Redis速度为什么快?
· 展开说说关于C#中ORM框架的用法!
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库
· SQL Server 2025 AI相关能力初探
点击右上角即可分享
微信分享提示