找回密码
 立即注册
楼主: ∮紫∈寒§

[脚本] 分享一个抛物线的代码

[复制链接]
发表于 2012-11-26 14:02 | 显示全部楼层 |阅读模式
  第一次发帖子,请大家多多指教。
  想做一个抛物线的算法,去网上搜也有一些,但是都不是我想要的那样的效果,所以只好自己动手,当中有许多公式还是问的朋友(自己早就忘记了)。希望这段代码能给大家帮助,如果有什么写的不好的请大家多多指教。
  用法很简单:1. 代码添加到要抛出的物体 2.设置 M(质量)、G(重力)、TUP(希望到达最高点的时间 )和TARGET(目的地物体。当然这个抛物线只是简单写了下,计算的只是在完美的运动下的抛物线。所以需要注意几个问题:1.摩擦力要为0 2.物理材质可能会有影响

求好评啊亲们~~~~~
  1. using UnityEngine;
  2. using System.Collections;

  3. public class test : MonoBehaviour {
  4.     public float m = 2, g = 9.81f, tUp = 0.5f;//m:质量 g:重力 tup:希望到达最高点的时间
  5.     private float forceUp, forceRight, vUp0, highest, tUpTotal, vRight;//forceup: 垂直方向的力 vup0:垂直初速度  highest: 最高点 tUpTotal: 总时间
  6.     public Transform target;//目标位置物体
  7.     public bool isParabola;
  8.     // Use this for initialization
  9.     void Start()
  10.     {
  11.         vUp0 = g * tUp;//求出锤子的初速度
  12.         forceUp = g + vUp0 * m / Time.fixedDeltaTime;//垂直方向添加的力
  13.         highest = transform.position.y + 0.5f * g * tUp * tUp;//计算最高点的高度
  14.         tUpTotal = Mathf.Sqrt(Mathf.Abs(target.position.y - highest) * 2 / g) + tUp;//总时间计算
  15.         vRight = (target.position.x - transform.position.x) / tUpTotal;//求出水平速度
  16.         forceRight = vRight / Time.fixedDeltaTime * m;//水平方向添加的力
  17.     }
  18.     void FixedUpdate()
  19.     {
  20.         if (isParabola)
  21.         {
  22.             isParabola = false;
  23.             rigidbody.AddForce(Vector3.up * forceUp);
  24.             rigidbody.AddForce(Vector3.right * forceRight);
  25.         }
  26.     }
  27.     void OnGUI()
  28.     {
  29.         if (GUILayout.Button("dsfsd"))
  30.         {
  31.             isParabola = true;
  32.         }
  33.     }
  34. }
复制代码
 楼主| 发表于 2012-11-26 14:16 | 显示全部楼层
无人回复  自己顶起
 楼主| 发表于 2012-11-26 14:16 | 显示全部楼层
{:5_404:}{:5_404:}{:5_404:}{:5_404:}{:5_404:}{:5_404:}{:5_404:}{:5_404:}{:5_404:}
发表于 2012-11-26 15:13 | 显示全部楼层
{:5_404:}{:5_404:}{:5_404:}{:5_404:}
 楼主| 发表于 2012-11-26 15:22 | 显示全部楼层
有用  不错  很好 谢谢了
发表于 2013-5-20 13:47 | 显示全部楼层
不是给个力推一推它,它就可以抛物线移动的吗
发表于 2014-5-27 11:14 | 显示全部楼层
谢谢 分享 谢谢
发表于 2017-2-17 11:52 | 显示全部楼层
很不错
发表于 2017-2-17 12:23 | 显示全部楼层
楼主是超人
发表于 2017-2-17 11:37 | 显示全部楼层
顶顶多好
懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Unity开发者联盟 ( 粤ICP备20003399号 )

GMT+8, 2024-11-23 19:47 , Processed in 0.129854 second(s), 22 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表