Unity使用DoTween实现抛物线效果

Unity使用DoTween实现抛物线效果,供大家参考,具体内容如下

概要

public partial class EMath
{
    public static Vector3 Parabola(Vector3 start, Vector3 end, float height, float t)
    {
        float Func(float x) => 4 * (-height * x * x + height * x);

        var mid = Vector3.Lerp(start, end, t);

        return new Vector3(mid.x, Func(t) + Mathf.Lerp(start.y, end.y, t), mid.z);
    }

    public static Vector2 Parabola(Vector2 start, Vector2 end, float height, float t)
    {
        float Func(float x) => 4 * (-height * x * x + height * x);

        var mid = Vector2.Lerp(start, end, t);

        return new Vector2(mid.x, Func(t) + Mathf.Lerp(start.y, end.y, t));
    }
}

使用方法

public class Test : MonoBehaviour
{
    public Transform start;
    public Transform target;
    public Transform ball;

    private float t;

    private void Start()
    {
        DOTween.To(setter: value =>
            {
                Debug.Log(value);
                ball.position = Parabola(start.position, target.position, 10, value);
            }, startValue: 0, endValue: 1, duration: 5)
            .SetEase(Ease.Linear);
    }
}

效果演示

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • Unity使用DoTween实现抛物线效果

    Unity使用DoTween实现抛物线效果,供大家参考,具体内容如下 概要 public partial class EMath { public static Vector3 Parabola(Vector3 start, Vector3 end, float height, float t) { float Func(float x) => 4 * (-height * x * x + height * x); var mid = Vector3.Lerp(start, end, t); r

  • Unity实现老虎机滚动抽奖效果的示例代码

    直接看下效果图吧: 制作思路: 设计四张图片,五个点,每个图片同时向下一个点移动,到最后一个就回到0号点,以此循环. 场景搭建: 创建Image命名为Bg作为电视框背景: 创建Image命名Mask并添加Mask组件作为电视框内容显示遮罩框: 创建四个Image作为滚动图片: 创建开始抽奖按钮: PS:实际项目中可以根据需求来动态修改图片显示,以达到的控制每次抽奖奖品内容. 源码分享: using System.Collections; using UnityEngine; using Unit

  • unity实现屏幕上写字效果

    本文实例为大家分享了unity实现屏幕上写字效果的具体代码,供大家参考,具体内容如下 先建立一个RawImage,然后再在这个图片上加个LineRenderer组件,再建个材质球,把材质球的Shader改成Particles/Additive,把材质球拖给LineRenderer组件的Materials/Element 0(不拖也可以),最后再把代码拖给空物体即可,代码的Target是RawImage,下面的代码 using System.Collections; using System.Co

  • Unity实现物体左右移动效果

    本文实例为大家分享了Unity实现物体左右移动效果的具体代码,供大家参考,具体内容如下 效果如下 代码: using UnityEngine; using System.Collections; //Add this script to the platform you want to move. //左右移动的平台 public class MovingPlatform : MonoBehaviour { //Platform movement speed.平台移动速度 public floa

  • Unity实现3D循环滚动效果

    本文实例为大家分享了Unity实现3D循环滚动效果展示的具体代码,供大家参考,具体内容如下 然后通过SetDepthAndPosition这个方法,实现图片的空间空间展开 Z轴和Y轴,系数是一样的 经过上面设置,空间就摆开了 using UnityEngine; using System.Collections; using System.Collections.Generic; public class SelectRole : MonoBehaviour { public GameObjec

  • Unity实现卡牌翻动效果

    本文实例为大家分享了Unity实现卡牌翻动效果展示的具体代码,供大家参考,具体内容如下 事实上这是项目需要,我改的一个代码,实际上就是利用unity的一些基础属性实现其效果.啥也不多说了,先上原代码: /// Credit Mrs. YakaYocha /// Sourced from - https://www.youtube.com/channel/UCHp8LZ_0-iCvl-5pjHATsgw /// Please donate: https://www.paypal.com/cgi-b

  • Unity使用摄像机实现望远镜效果

    本文实例为大家分享了Unity使用摄像机实现望远镜效果的具体代码,供大家参考,具体内容如下 听起来挺酷炫,其实超简单,就是控制摄像机的fieldOfView: using UnityEngine; using System.Collections; public class TelesopicView : MonoBehaviour { public float zoomLevel = 2.0f; public float zoomInSpeed = 100.0f; public float z

  • Unity Shader实现描边OutLine效果

    本文实例为大家分享了Unity Shader实现描边OutLine效果的具体代码,供大家参考,具体内容如下 Shader实现描边流程大致为:对模型进行2遍(2个pass)绘制,第一遍(描边pass)在vertex shader中对模型沿顶点法线方向放大,fragment shader设置输出颜色为描边颜色:第二遍正常绘制模型,除被放大的部分外,其余被覆盖,这样就有了描边的效果. 实现代码如下: Shader "Custom/OutlineShader" { Properties { _

  • unity实现车方向盘转动效果

    本文实例为大家分享了unity实现车方向盘转动效果的具体代码,供大家参考,具体内容如下 效果: C#脚本如下: using System; using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.EventSystems; public class NewBehaviourScript : MonoBehaviour, IDragHandler,IBeginD

  • Unity之跑马灯抽奖效果单抽与连抽(附demo)

    本文主要介绍了Unity之跑马灯抽奖效果单抽与连抽,分享给大家,具体如下: 效果图 单次抽奖效果 跳过动画抽奖效果 三连抽抽奖效果 设计思路 点击按钮 ,根据需求(概率)计算本次抽奖获得物品模拟转动 (先加速后减速), 一段时间后停止连抽的情况下等所有奖品动画都表演完成才结束跳过动画设计,有跳过时抽奖速度直接到最大,并进入可中奖 场景搭建 一个按钮,一个组奖品放到一个父物体上. 奖品元素,有两种状态,一种旋转状态,一种中奖状态. 代码 using System; using System.Col

随机推荐