您好,欢迎来到Unity之家!   unity.jb51.net 
  • 首 页
  • 你问我答
  • 当前位置:首页 > 学习培训 > Unity编程 >
    抛物线脚本
    时间:2015-03-21 10:03 来源:Unity之家 作者:unity.jb51.net 浏览:收藏 挑错 推荐 打印


    把此脚本挂在cube上,然后把另一个cube拖到target上,把这两个物体之间设有一段距离,然后运行,就可看到效果


    直接贴出代码:


    using UnityEngine;
    using System.Collections;
    public class ProjectileTest : MonoBehaviour
    {
    public GameObject target;
    public float speed = 10;
    private float distanceToTarget;
    private bool move = true;
    void Start ()
    {
    distanceToTarget = Vector3.Distance (this.transform.position, target.transform.position);
    StartCoroutine (Shoot ());
    }
    IEnumerator Shoot ()
    {
    while (move) {
    Vector3 targetPos = target.transform.position;
    this.transform.LookAt (targetPos);
    float angle = Mathf.Min (1, Vector3.Distance (this.transform.position, targetPos) / distanceToTarget) * 45;
    this.transform.rotation = this.transform.rotation * Quaternion.Euler (Mathf.Clamp (-angle, -42, 42), 0, 0);
    float currentDist = Vector3.Distance (this.transform.position, target.transform.position);
    print ("currentDist" + currentDist);
    if (currentDist < 0.5f)
    move = false;
    this.transform.Translate (Vector3.forward * Mathf.Min (speed * Time.deltaTime, currentDist));
    yield return null;
    }
    }
    }


    赶快测试下吧。记得留言哟。。。


    (责任编辑:脚印)
    免责声明:Unity之家部分内容来源于互联网,如有侵权,请联系我们,本站将立即进行处理。
    标签:Unity之家