相关疑难解决方法(0)

团结加速

我试图在Unity中模拟加速和减速.

我已编写代码以在Unity中生成轨道,并根据时间将对象放置在轨道上的特定位置.结果看起来有点像这样.

立方体通过Catmull-Rom Spline中途

我现在有问题的是,花键的各个部分是不同的长度和不同的在每个部分中的立方体的动作,但均匀,速度.这导致在切片之间转换时立方体的速度突然跳跃.

为了尝试解决这个问题,我试图在方法上使用Robert Penner的缓动方程GetTime(Vector3 p0, Vector3 p1, float alpha).然而,虽然这确实有所帮助,但这还不够.在转换之间仍然存在速度跳跃.

有没有人对如何动态地缓解立方体的位置以使其看起来像加速和减速,没有轨道段之间的速度没有大的跳跃有任何想法?


我编写了一个脚本,显示了我的代码的简单实现.它可以附加到任何游戏对象.为了便于查看代码运行时发生的情况,请附加到多维数据集或球体之类的内容.

using System.Collections.Generic;
using UnityEngine;
#if UNITY_EDITOR
using UnityEditor;
#endif

public class InterpolationExample : MonoBehaviour {
    [Header("Time")]
    [SerializeField]
    private float currentTime;
    private float lastTime = 0;
    [SerializeField]
    private float timeModifier = 1;
    [SerializeField]
    private bool running = true;
    private bool runningBuffer = true;

    [Header("Track Settings")]
    [SerializeField]
    [Range(0, 1)]
    private float catmullRomAlpha = 0.5f;
    [SerializeField]
    private List<SimpleWayPoint> wayPoints = new List<SimpleWayPoint>
    {
        new SimpleWayPoint() {pos = new …
Run Code Online (Sandbox Code Playgroud)

c# interpolation unity-game-engine catmull-rom-curve

10
推荐指数
1
解决办法
2007
查看次数

知道何时以及如何旋转对象

下面的CSV为我x,z提供了id = 1在给定时间内t以秒为单位的汽车坐标.

我能够在每一秒更新汽车游戏对象的变换位置就好了.问题在于,当汽车的方向发生变化时,我需要能够旋转(或逼真地转动)汽车,使其指向正常的方向.我现在尝试使用简单的Lerp旋转(然后使用标准资产CarController脚本使之后更加逼真).

我现在面临的当前问题是知道汽车何时转弯,以及如何确定汽车的转向,以及转向哪种方向.我怎么能这样做?

t,id,x,z
908,1,0.00,755.17
909,1,-1.50,732.50
910,1,-1.50,715.84
911,1,-1.50,699.17
912,1,-1.50,682.50
913,1,-1.50,679.19
914,1,-1.50,679.19
915,1,-1.50,679.19
916,1,-1.50,653.52
917,1,-1.50,636.85
918,1,-1.50,620.19
919,1,-1.50,603.52
920,1,-1.50,586.85
921,1,-1.50,570.19
922,1,-1.50,553.52
923,1,-1.50,536.85
924,1,-1.50,521.94
925,1,-1.50,521.94
926,1,-1.50,521.94
927,1,-1.50,521.94
928,1,-1.50,521.94
929,1,-1.50,521.94
930,1,-1.50,521.94
931,1,-1.50,496.28
932,1,-1.50,479.61
933,1,-1.50,462.94
934,1,-1.50,446.28
935,1,-1.50,429.61
936,1,-1.50,412.94
937,1,-1.50,396.28
938,1,-1.50,379.61
939,1,-1.50,378.74
940,1,-1.50,378.74
941,1,-1.50,378.74
942,1,-1.50,378.74
943,1,-1.50,378.74
944,1,-1.50,378.74
945,1,-1.50,378.74
946,1,-1.50,350.07
947,1,-1.50,333.40
948,1,-1.50,316.74
949,1,-1.50,300.07
950,1,-1.50,283.40
951,1,-1.50,266.74
952,1,-1.50,250.07
953,1,-1.50,233.40
954,1,-1.50,232.39
955,1,-1.50,232.39
956,1,-1.50,232.39
957,1,-1.50,232.39
958,1,-1.50,232.39
959,1,-4.50,209.72
960,1,-4.50,193.05
961,1,-4.50,176.39
962,1,-4.50,159.72
963,1,-4.50,143.05
964,1,-4.50,126.39
965,1,-4.50,109.72
966,1,-4.50,93.05
967,1,-4.50,76.39
968,1,-4.50,59.72
969,1,-4.50,43.05
970,1,-4.50,26.39
971,1,-4.50,9.72
972,1,-4.50,6.00
973,1,-4.50,6.00 …
Run Code Online (Sandbox Code Playgroud)

c# simulation unity-game-engine

0
推荐指数
1
解决办法
190
查看次数