近期热门
unity3d 抛物线(炮弹轨迹)【代码】

[U3D] unity3d 抛物线(炮弹轨迹)【代码】

[复制链接]
18893 1 1 2 12年前
把这个脚本挂在一个cube上,然后把另一个cube拖到target上,把这两个物体之间有一段距离,然后运行,就看到效果了
  1. using UnityEngine;
  2. using System.Collections;


  3. public class ProjectileTest : MonoBehaviour
  4. {
  5.     public GameObject target;
  6.     public float speed = 10;
  7.     private float distanceToTarget;
  8.     private bool move = true;


  9.     void Start ()
  10.     {
  11.         distanceToTarget = Vector3.Distance (this.transform.position, target.transform.position);
  12.         StartCoroutine (Shoot ());
  13.     }
  14.    
  15.     IEnumerator Shoot ()
  16.     {
  17.         
  18.         while (move) {
  19.             Vector3 targetPos = target.transform.position;
  20.             this.transform.LookAt (targetPos);
  21.             float angle = Mathf.Min (1, Vector3.Distance (this.transform.position, targetPos) / distanceToTarget) * 45;
  22.             this.transform.rotation = this.transform.rotation * Quaternion.Euler (Mathf.Clamp (-angle, -42, 42), 0, 0);
  23.             float currentDist = Vector3.Distance (this.transform.position, target.transform.position);
  24.             print ("currentDist" + currentDist);
  25.             if (currentDist < 0.5f)
  26.                 move = false;
  27.             this.transform.Translate (Vector3.forward * Mathf.Min (speed * Time.deltaTime, currentDist));
  28.             yield return null;
  29.         }
  30.     }
  31. }
复制代码
1
点赞
0
打赏
2
添加到收藏夹

0

点击复制链接

使用微信扫码分享
一次扣10个券
全部评论1
您需要登录后才可以回帖 登录

厉害
11年前  ·  2楼
回复

使用道具 举报

您当前使用的浏览器IE内核版本过低会导致网站显示错误

请使用高速内核浏览器或其他浏览器