位置: 编程技术 - 正文

Unity3D游戏开发之《愤怒的小鸟》弹弓怎么实现(Unity3D游戏开发标准教程)

编辑:rootadmin

推荐整理分享Unity3D游戏开发之《愤怒的小鸟》弹弓怎么实现(Unity3D游戏开发标准教程),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:Unity3D游戏开发基础,Unity3D游戏开发基础,Unity3D游戏开发毕业论文,Unity3D游戏开发标准教程,Unity3D游戏开发(第2版),Unity3D游戏开发pdf,Unity3D游戏开发标准教程,Unity3D游戏开发标准教程,内容如对您有帮助,希望把文章链接给更多的朋友!

喜欢我的博客请记住我的名字:秦元培,我的博客地址是 本文出处: 我们学习Unity3D培训目标:让U3D初学者可以更快速的掌握U3D技术,自行制作修改素材,可以独立完成2D、3D小规模游戏及网页游戏开发。

今天我们来做一个高端大气上档次的东西。我相信大家都玩过一款叫做《愤怒的小鸟》的游戏,这款游戏之所以能够受到玩家的喜爱,是因为这是一款物理游戏,在游戏中处处充满了物理。我们熟悉的抛物线、引力等物理元素都在这款游戏中得到了体现。那么《愤怒的小鸟》这款游戏使用的正是Unity引擎,所以我们在游戏中看到了各种各种有趣的物理现象。那么,我们今天呢,就以《愤怒的小鸟》游戏中的小鸟发射器——弹弓为例,来讲述在Unity中如何实现弹性效果。

首先,我们来引入一个新的概念——LineRenderer。在Unity3D中LineRenderer被称为线性渲染器。通过这个组件,我们可以做一些比较有创意的东西,比如在游戏中绘制线段、制作激光特效、武器拖尾效果等。那么今天呢,我们是用LineRenderer来构造弹弓两边的绳子,这个绳子是具有弹性的,在受力结束后可以恢复到原来的状态。我们首先创建一个如下图的简单场景:

Unity3D游戏开发之《愤怒的小鸟》弹弓怎么实现(Unity3D游戏开发标准教程)

在上面的场景中,两边的柱子作为固定绳子的物体,小球在两根绳子中间。我们希望实现的是:

当用户按下鼠标左键并移动鼠标的时候,小球和绳子都将跟着移动,当松开鼠标左键的时候,小球以一定的角度和一定的力发射出去。我们今天着重来讲绳子的实现。首先我们创建一个空的GameObject将坐标&#;设为原点,命名为RopeL。接下来我们通过Component->Effects->Line Renderer为添加一个线性渲染器组件。如图:

我们设定好上述参数后,就可以开始编写脚本了,这里两根绳子是对称的:

[csharp] view plaincopyprint?using UnityEngine; using System.Collections; public class Ball : MonoBehaviour { //鼠标位置 private Vector3 MousePos; //左侧LineRenderer private LineRenderer LineL; //右侧LineRenderer private LineRenderer LineR; void Start () { //获取LineRenderer LineL=GameObject.Find("Shootor").transform.FindChild("RopeL"). transform.GetComponent<LineRenderer>(); LineR=GameObject.Find("Shootor").transform.FindChild("RopeR"). transform.GetComponent<LineRenderer>(); } void Update () { if(Input.GetMouseButton(0)) { //获取鼠标位置 MousePos=Camera.main.ScreenToViewportPoint(new Vector3(Input.mousePosition.x,Input.mousePosition.y,-2F)); //设置小球的位置 transform.position=MousePos; //重新设置LineRenderer的位置 LineL.SetPosition(0,new Vector3(MousePos.x,MousePos.y,MousePos.z-0.5F)); LineR.SetPosition(0,new Vector3(MousePos.x,MousePos.y,MousePos.z-0.5F)); } if(Input.GetMouseButtonUp(0)) { //获取鼠标位置 MousePos=Camera.main.ScreenToViewportPoint(new Vector3(Input.mousePosition.x,Input.mousePosition.y,-2F)); //设置小球的位置 transform.position=MousePos; //重新设置LineRenderer的位置 LineL.SetPosition(0,new Vector3(MousePos.x,MousePos.y,MousePos.z-0.5F)); LineR.SetPosition(0,new Vector3(MousePos.x,MousePos.y,MousePos.z-0.5F)); //计算小球合力方向 Vector3 Vec3L=new Vector3(-2F-MousePos.x,1.8F-MousePos.y,0F-MousePos.z); Vector3 Vec3R=new Vector3(2F-MousePos.x,1.8F-MousePos.y,0F-MousePos.z); Vector3 Dir=(Vec3L&#;Vec3R).normalized; //获取刚体结构 transform.GetComponent<Rigidbody>().useGravity=true; transform.GetComponent<Rigidbody>().AddForce(Dir*F,ForceMode.Impulse); //恢复LineRenderer LineL.SetPosition(0,new Vector3(0F,1.8F,0F)); LineR.SetPosition(0,new Vector3(0F,1.8F,0F)); } } } 我们给小球加上刚体后,绑定这段脚本就可以了。我们需要注意的问题有:

1、这里的力是给定的大小,我们可以根据绳子被拉长的距离使用一个弹性系数来计算力的大小。

更多精彩请到 2、计算合力的方向时,我们首先计算两边绳子的向量&#;,然后将这两个向量想加即可得到我们的合力方向。

好了,我们一起来看今天的效果演示吧!

Unity3D游戏开发之网络游戏服务器架构设计培训(如何做一名主程) 下面我们开始今天的Unity3D游戏开发技能培训。初期学习Unity3D培训目标:让U3D初学者可以更快速的掌握U3D技术,自行制作修改素材,可以独立完成2D、3D

unity3d游戏开发之简单的透明shader技能培训 下面我们开始今天的Unity3D游戏开发技能透明shader技能培训。我们学习Unity3D培训目标:让U3D初学者可以更快速的掌握U3D技术,自行制作修改素材,可以独

Unity3D游戏开发之实现血条技能培训 喜欢我的博客请记住我的名字:秦元培,我的博客地址是

标签: Unity3D游戏开发标准教程

本文链接地址:https://www.jiuchutong.com/biancheng/372913.html 转载请保留说明!

上一篇:Unity3D游戏开发之游戏模型制作:机器人(Unity3D游戏开发毕业论文)

下一篇:Unity3D游戏开发之网络游戏服务器架构设计培训(如何做一名主程)(Unity3D游戏开发引擎)

  • 个税必须每个人交吗
  • 企业投资收益要开发票吗
  • 增值税零税率是一种税收优惠政策
  • 交通费中的高速费怎么算
  • 业务招待费进项税额转出表二
  • 公司有残疾人如何进行增值税减免备案
  • 非营利组织免交的增值税转入哪个科目
  • 新成立公司交税
  • 自行建造固定资产中的自营工程,在领用工程物资
  • 车辆购置税完税证明网上打印
  • 增值税普通发票和普通发票的区别怎么交税
  • 可转换公司债券是什么意思
  • 个体工商户不经营会自动注销吗
  • 超过保质期存储时间或变质的食品应该怎样处理
  • 企业所得税跨期费用的相关规定
  • 企业收到的政府补贴,怎么入账
  • 生产过程中产生的废料怎么管理
  • 公司为什么要员工提供房产证
  • 劳务分包有执照没资质能开票吗?
  • 拿到进项票下一步做啥
  • 运输发票抵扣税率是有多少?
  • a公司拟吸收合并b公司除一项无形资产吗
  • 核定征收的小型微利企业
  • 每股股份价格
  • 材料销售的账务处理
  • 企业空气检测费应该计入什么会计科目核算?
  • 企业管理服务公司是中介吗
  • 社保和公积金的钱可以取出来吗
  • 应收账款贷方余额怎么调平
  • 补贴收入是否缴税
  • 办公家具会计分录怎么做
  • 购买的房屋如何过户
  • 收到其他公司的罚款会计分录
  • 筹建期间内发生的开办费属于什么费用
  • 弥补亏损的会计分录是怎样的
  • 劳务公司开发票,劳务公司怎么转取收入
  • 开发成本怎么核算
  • 融资租入的设备为什么属于资产
  • 增值税价外费用怎么算
  • PHP:pcntl_get_last_error()的用法_PCNTL函数
  • 会计准则新规
  • 长期借款科目核算方法
  • 拉帕努伊国家公园
  • 进口货物完税价格怎么算
  • 自己的智能ai聊天怎么用
  • jedis命令
  • 服务型企业交税再返税
  • 企业税金总额包括什么
  • api接口安全措施
  • mongodb数据查询
  • 报关单填制相关规范相关文件
  • 增值税少企业所得税高吗
  • 增值税申报表里期初未缴税额是什么意思
  • 应交税金为负数应该填在资产负债表哪一栏
  • 一家新成立的贸易企业
  • 公司转投资是什么意思
  • 结转增值税的账务处理一定要通过转出未交增值税吗
  • 借款怎么收回来
  • 12月计提的工资没有发完怎么做账
  • 建设项目财务费用包括哪些
  • 诺诺开票人怎么修改
  • mysql5.7安装教程详细
  • 腾讯云centos7有界面吗
  • windows10的xbox如何录制视频
  • centos安装rz命令
  • win10周年更新版是什么意思
  • linux date-u
  • ins pc版
  • cocos2dx框架
  • 猫的猫的视频
  • js 异步队列
  • javascript中常见的数据类型有哪些?
  • 安卓自定义app
  • JQuery绑定事件的函数是
  • [置顶] 安卓手机连接IP100蓝牙打印机实现打印功能
  • 医院票据怎么查询
  • 绿化项目利润
  • 甘肃国家税务局兰州专用章图片
  • 长春市朝阳区公安局电话
  • 国税总局17号公告
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设