上一节说到小鸟移动是靠位移来实现的,但是由于之前生成小鸟的脚本是按预制体的刚体速度判断的,而小鸟之前的发射是靠推动力实现的,所以会出现小鸟在位移情况下不具备刚体速度,小鸟不断产生的情况。
如何解决这一问题呢?我们在判断生成小鸟的条件时,不能按照原来的思路进行刚体速度的判断,需要根据位移情况进行判断。或者如果按照刚体速度判断,则必须给小鸟使用推动力走抛物线,不能按照位移来实现。
下面我们来实践通过推动力来给小鸟形成抛物线形状,并使小鸟的刚体属性发挥作用。各种属性不变,给小鸟初始化一个推动力。
新增脚本ThrowBirdForce.cs
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class ThrowBirdForce : MonoBehaviour
{
public Transform pointbird;//小鸟的初始位置
public float Power=150;
// Use this for initialization
Vector2 speed;//初速度向量
void Start()
{
//通过一个式子计算初速度
speed = (new Vector2(2,1))*Power;
//重力初始速度为0
//Gravity = Vector2.zero;
Debug.Log("Speed is "+ speed);
GetComponent().isKinematic=false;
GetComponent().AddForce(speed);
}
}

给小鸟预制体bird赋予该脚本,把通过位移小鸟的脚本取消勾选。

然后执行程序

我们实现了小鸟间隔发射的作用。

当然此时小鸟的刚体属性发挥作用,使得小鸟刚体没有速度时才会生成第二只小鸟。
如果没有什么初始推动力变化,小鸟将以固定的模式发射,就像帝国时代中的投石车。但是,此时,小鸟还不具备主动发现目标精准打击的功能。如果小鸟能够做到自动判断,则小鸟需要对目标区域首先完成扫描才行,然后根据不同距离计算出发射初始的推动力的大小,然后实现精准打击。

Unity二维平面上物体的移动(十二)-抛物线推动力相关推荐

  1. Unity二维平面上物体的移动(十一)-位移和推动力移动的区别

    上一节中我们发射一个小鸟来形成炮弹状效果,击打物体.对于小鸟这个预制体,每隔一定时间,发射一次.让小鸟以抛物线状发射出去.给预制体的小鸟增加一个初速度. 发射小鸟的脚本ThrowBirds.cs us ...

  2. Java黑皮书课后题第10章:*10.15(几何:边框)边框是指包围一个二维平面上点集的最小矩形,编写一个方法,为二维平面上一系列点返回一个边框

    *10.15编写一个方法,为二维平面上一系列点返回一个边框 题目 程序 代码 Test15.java Test13_MyRectangle2D.java 运行结果 题目 点击这里跳转编程练习题10.1 ...

  3. 可视化 —— 二维平面上的散列点在坐标轴方向上的移动

    二维平面可以通过平面直角坐标系表示: 二维平面上不同的散列点,也就是平面直角坐标系上的不同的点, 其在坐标轴方向上的移动,分别在以下两个方向上的移动: 在 xx 轴方向上,(x1,y1)(x_1, y ...

  4. JavaScript:实现计算二维平面上两点之间的距离算法(附完整源码)

    JavaScript:实现计算二维平面上两点之间的距离算法 /*Calculate the mathematical properties involving coordinatesCalculate ...

  5. 给定两个数组arrx和arry,长度都为N。代表二维平面上有N个点,第i个点的x 坐标和y坐标分别为arrx[i]和arry[i],返回求一条直线最多能穿过多少个点?

    问题描述: 给定两个数组arrx和arry,长度都为N.代表二维平面上有N个点,第i个点的x 坐标和y坐标分别为arrx[i]和arry[i],返回求一条直线最多能穿过多少个点? 思想 坐标系中两个点 ...

  6. 在二维平面上,有一个机器人从原点 (0, 0) 开始。给出它的移动顺序,判断这个机器人在完成移动后是否在 (0, 0) 处结束。

    在二维平面上,有一个机器人从原点 (0, 0) 开始.给出它的移动顺序,判断这个机器人在完成移动后是否在 (0, 0) 处结束. 移动顺序由字符串表示.字符 move[i] 表示其第 i 次移动.机器 ...

  7. 现在,我们用大炮来打蚊子:蚊子分布在一个M×N格的二维平面上,每只蚊子占据一格。向该平面的任意位置发射炮弹,炮弹的杀伤范围如下示意:

    目录 输入格式: 输出格式: 输入样例: 输出样例: 正确答案: 现在,我们用大炮来打蚊子:蚊子分布在一个M×N格的二维平面上,每只蚊子占据一格.向该平面的任意位置发射炮弹,炮弹的杀伤范围如下示意: ...

  8. 二维平面上点与线段关系的判定

    二维平面上点与线段关系的判定 问题的基本模型是:已知平面上一线段AB,判定平面上一点C相对于AB的位置(C不和AB共线). 通过向量叉积来判定线段与点的的位置关系. 例题:Toys (http://p ...

  9. [十二省联考2019]春节十二响——长链剖分+堆

    题目链接: [十二省联考2019]春节十二响 可以发现每条链上的所有点都要放在不同的段里,那么最多只需要树的深度这么多段就够了. 因为这样可以保证每条链上的点可以放在不同的段中而且一个点放在这些段中一 ...

最新文章

  1. TCP 的那些事儿(上)
  2. 主机和虚拟机ping不通的原因
  3. Rundll32使用技巧
  4. jmeter+Fiddler:通过Fiddler抓包生成jmeter脚本
  5. Navicat 连接Oracle时提示oracle library is not loaded的问题解决
  6. fabric 启动peer_Hyperledger Fabric Peer 常用命令总结
  7. CAD地形图等高线标高批量取整工具,解决等高线标高出现小数的问题,等高线高程批量取整,在指定限差内将等高线标高修改为最接近的整数
  8. java电子邮件收发系统的设计与实现_基于Java Mail的电子邮件收发系统的设计与实现毕业论文.doc...
  9. 应急响应.windows
  10. 视频倒立解决方法/USB 视频设备ID:USB\VID_13D3PID_5130MI_00\621DA5E0900000
  11. 【 开源计划 - Flutter组件 】 星星也可以如此闪耀 flutter_star
  12. 网易云信 android,网易云信/NIM_Android_UIKit
  13. 计算机开机一直无法访问,电脑开机时显示:AutoIt 错误 不能打开脚本文件 如何处理...
  14. 加泰罗尼亚理工大学 计算机 排名,加泰罗尼亚理工大学排名
  15. 二级计算机vf里的sql,计算机二级考试vf常用sql语句
  16. php教育网站设计案例_课程教学网站的设计与实现(MySQL)(含录像)
  17. 同余定理在计算机科学的应用,同余定理在小学数学竞赛中的应用
  18. 关于Android项目中的Toast那些动画实现方式
  19. Human Body 身体部位名称
  20. 科大讯飞笔试题iflytek序列查找

热门文章

  1. 我的macOS上有什么(持续更新使用情况)
  2. 继续摘抄:postfix最新源码病毒过滤和反垃圾实战篇
  3. 题目目录:java练习题
  4. python周环比增长率怎么算_平均增长速度可以根据各个环比增长速度直接求得。()...
  5. Altium 设置覆铜与板框间距
  6. 谣言检测文献阅读二—Earlier detection of rumors in online social networks using certainty‑factor‑based convolu
  7. html探照灯效果,巧用CSS的MASK滤镜
  8. 阿翔编程学-Axis
  9. ajax常用的api测试
  10. 牛客网——华为题库(11~20)