需求:一个小怪在空间中任意两点做抛物线运动(开口朝下),并且被英雄攻击后减速。
using UnityEngine;public class TestJump : MonoBehaviour
{public Transform jumpFrom; // 起始点public Transform jumpTo; // 终点private Vector3 posStart, posEnd;public float moveSpeed = 2; // 实际速度public float moveSpeedFixed = 2; // 移动速度public float jumpTime = 1.5f; // 起始点-终点的总时间private float jumpTimer;private bool jumpInit = false;void Update(){if (!jumpInit){posStart = jumpFrom.position;posEnd = jumpTo.position;jumpInit = true;}Jump();}void Jump(){jumpTimer += Time.deltaTime * (moveSpeed / moveSpeedFixed);float f1 = jumpTimer / jumpTime;float f2 = jumpTimer - jumpTimer * f1; // 竖直加速运动Vector3 v1 = Vector3.Lerp(posStart, posEnd, f1); // 水平匀速运动transform.position = v1 + f2 * Vector3.up;if (jumpTimer >= jumpTime){jumpTimer = 0;jumpInit = false;}}
}
这个减速仍然沿着原路线运动只是速度减慢,如果要模拟真实的在抛物线运动中被英雄子弹击中后的减速运动,只需根据英雄子弹的方向,调整小怪的水平和竖直速度即可。
本文发布于:2024-02-05 01:41:33,感谢您对本站的认可!
本文链接:https://www.4u4v.net/it/170721142061867.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |