zoukankan      html  css  js  c++  java
  • Unity 弹道轨迹

    123

    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);
                this.transform.Translate(Vector3.forward * Mathf.Min(speed * Time.deltaTime, currentDist));
                
                //如果距离目标0.5就停止移动
                if (currentDist < 0.5f) 
                {
                    move = false;
                }
                
    
                yield return null;
            }
        }
    
    
    }
    如果你感兴趣,你可以把你妹妹介绍给我
  • 相关阅读:
    C语言之分支语句
    C语言之运算符与表达式
    C语言之数据类型④——中文字符
    独特的对象引用:this
    理解赋值“=”的含义
    编写类的 “模板”
    类的定义
    Java语言规范
    第一周总结
    定义常量
  • 原文地址:https://www.cnblogs.com/plateFace/p/4394095.html
Copyright © 2011-2022 走看看