本文章记录实现打怪掉落物品的功能,以下代码为2D实现,3D模式稍加修改即可。

目录

一、代码部分

二、注意事项

三、效果展示


一、代码部分

创建一个C#脚本命名为Item,并将该脚本挂载到需要掉落的物品上。

using System.Collections;
using System.Collections.Generic;
using UnityEngine;[RequireComponent(typeof(Rigidbody2D))]
[RequireComponent(typeof(BoxCollider2D))]
public class Item : MonoBehaviour
{// Start is called before the first frame updatevoid Awake(){// 反弹材质var physicMat = new PhysicsMaterial2D();physicMat.bounciness = 0.25f;_rb = GetComponent<Rigidbody2D>();_rb.velocity = new Vector2(Random.Range(-1f, 1f), 2f);_rb.freezeRotation = true;_rb.sharedMaterial = physicMat;gameObject.layer = LayerMask.NameToLayer("Item");}private void Start(){if(_owner == null){_owner = GameObject.FindWithTag("Player").transform;}}// Update is called once per framevoid Update(){if(!_bMagnet && Vector2.Distance((Vector2)transform.position, (Vector2)_owner.position) <= _fRange){_bMagnet = true;}if(_bMagnet){Vector3 dir = Vector3.MoveTowards(transform.position, _owner.position, _fMagnetSpeed * Time.deltaTime);_rb.MovePosition(dir);if(Vector2.Distance((Vector2)transform.position, (Vector2)_owner.position) <= 0.1f){Picked();}}}void Picked(){// 添加捡到物品的逻辑Destroy(gameObject);}private void OnDrawGizmos(){if (_bShowRangeInScene){Gizmos.color = new Color(1, 1, 0, 0.3f);Gizmos.DrawCube(transform.position, new Vector2(_fRange * 2, _fRange * 2));}}public float _fRange = 1; // 自动吸物品范围public float _fMagnetSpeed = 10; // 吸取速度public Transform _owner; // 捡到物品的人[SerializeField]bool _bShowRangeInScene = false; // 是否在场景中显示范围Rigidbody2D _rb; // Vector2 _originSpeed; // 物品发射速度bool _bMagnet = false; // 是否被吸住
}

二、注意事项

1.需要禁用掉落物品与自身和其他人物之间的碰撞(否则可能被物品撞飞)。

三、效果展示

unity内运行产生了卡顿,实际运行不会卡。

【Unity2D】实现打怪掉落物品(如爆金币等)的功能相关推荐

  1. 谷歌滤镜软件叫什么_谷歌app爆红的拍照功能:你最像名画中的谁?

    原标题:谷歌app爆红的拍照功能:你最像名画中的谁? 谷歌一个名叫艺术文化的app是世界上最大的线上博物馆.虽然这个app2016年就已经有了,不过直到最近才爆红,原因是开发人员在其中添加了一个有趣的 ...

  2. 如何快速找到微博热卖博主跟爆款商品?这个功能就可以!

    近年来,随着微博,公众号等社交媒体平台用户数量的增多,社交媒体在品牌营销中占据了重要位置,目前,它已经成为广告主投广营销的重点领域. 微博作为国内最活跃的社交媒体之一,拥有着庞大的用户基础.丰富的营销 ...

  3. 009 自动打怪功能的设计和实现

    文章目录 界面代码 流程设计 取最近怪物 自动打怪 界面代码 首先新增一个复选框,绑定控件变量和按钮事件,然后在按钮事件添加如下代码 //自动打怪 void MainWnd::OnBnClickedC ...

  4. 分享个堡垒前线辅助脚本,能快速升级刷金币的工具

    分享个堡垒前线辅助脚本,能快速升级刷金币的工具 在这个游戏中每一局比赛结束后都有奖励,在这个游戏中部分饰品.动作表情就可以用金币来解锁,而且这个游戏还要众多模式,因此玩家可以用红手指云手机中的堡垒前线 ...

  5. 爆料:谷歌金山词霸功能介绍及预览图

    5月8日上线的谷歌新产品,叫"金山词霸"还是"谷歌词霸"?正确答案是"谷歌金山词霸",这款新产品是在原金山词霸的基础上进行了一些互联网方面的 ...

  6. 零基础,初学者之 ---伤害门,激光门的制作;玩家获得道具,获得吸金币功能

    一.伤害门,激光门,任何物体经过两个物体之间都会毁灭消失     主要由三个脚本: 1.产生创建脚本CreateCubes脚本,绘制射线检测的Door脚本和CubeMove移动脚本,CubeMove不 ...

  7. DGP链游公会丨一文概览什么是GameFi链游

    2020年年初以来,全球疫情已经造成了广泛的经济问题,整个2020年除中国外,全球几乎所有的主要经济体全部为负增长.疫情时代下,"保持社交距离"."减少公共场所聚集与活动 ...

  8. 植物大战僵尸:寻找阳光掉落Call

    本次实验将接触到Call调用这个概念,什么是Call调用? Call相当于你在编程时所编写的函数,而高级语言中的函数最终也是会被编译器转换为汇编格式的Call调用,这些关键Call普遍都会存在各种参数 ...

  9. 神途boss_神途boss刷新

    道士还有一个独具特色的法术,叫做施毒术.在传奇中,当玩家达到14级的时候就可以修炼这种法术了.道士玩家平时可以通过打怪来获取到制作毒粉的材料(材料每次需求量并不是很多,材料种类是三种),每份毒粉制作成 ...

最新文章

  1. 【c语言】蓝桥杯算法提高 Quadratic Equation
  2. java发送http请求的四种方式
  3. 腾讯运维技术专家集结,揭秘高效智能运维 | 沙龙报名中
  4. Eclipse中查看Android源代码
  5. java取消按钮_Java Swing-单击取消按钮时不循环
  6. iframe父子页面间的关系
  7. SpringBoot集成MyBatis-Plus分页插件
  8. 【Flink】Flink流式导入Hbase 【视频笔记】
  9. vscode 翻译_前端新手 VSCode 入门指南
  10. Ubuntu无法ping通外网可以ping通内网
  11. python计算召回率代码_序列标注的准确率和召回率计算
  12. 会话技术——Cookie和Session
  13. pdf合并、生成目录大纲
  14. 大学生程序设计邀请赛(华东师范大学)A
  15. python常用library
  16. python爬取实习僧招聘信息字体反爬
  17. 从翻唱到原创,抖音千万粉丝网红郭聪明是如何养成的?
  18. js获取用户选择的文件路径[曲线救国]
  19. 写给那些冷门专业的大学生,敢问出路在何方?
  20. Clickhouse特性

热门文章

  1. 有哪些免费在线压缩图片的方法或工具
  2. 九齐单片机 , 使用了未定义的符号“STK03”(13010) ,取正 / 符号出错
  3. 新世纪计算机专业英语,新世纪研究生公共英语教材阅读A课文翻译完整版.pdf
  4. 【Vue+Element UI】关闭指定某一个页面的loading动画
  5. 文本文件自动计算生成srt字幕格式的文件
  6. Excel工作表中定位最后单元格(END属性)
  7. Android 系统 '七夕'巨献 VIVO Xplay 基于ViVo官方稳定内核,完美root,适度美化,降噪点,完美支持官方OTA升级
  8. Python实现软件自动登录超时锁屏
  9. 设计模式之单例设计模式(Singleton Pattern)详细剖析
  10. Java Web权限管理设计及实现