private void Awake()
        {
            if (ConstantSpeedTraversal)
            {
                // This must be called before calling any of the parametrization
                // evaluation methods!
                _splineLength = Spline.ParametrizeByArcLength(ParametrizationCount);

                _visualPoints = new PositionTangent[ParametrizationCount];
                for (int i = 0; i < _visualPoints.Length; ++i)
                {
                    _visualPoints[i]          = Spline.EvalPositionTangentParametrized((float)i / (_visualPoints.Length - 1) * _splineLength);
                    _visualPoints[i].Position = Spline.transform.TransformPoint(_visualPoints[i].Position);
                }
            }
            else
            {
                _visualPoints = new PositionTangent[ParametrizationCount];
                for (int i = 0; i < _visualPoints.Length; ++i)
                {
                    _visualPoints[i]          = Spline.EvalPositionTangent((float)i / (_visualPoints.Length - 1));
                    _visualPoints[i].Position = Spline.transform.TransformPoint(_visualPoints[i].Position);
                }
            }
        }
Example #2
0
    /// <summary>
    /// 初始化好玩家预制体,同时并将位置点重置到初始点
    /// </summary>
    public void LoadPlayer()
    {
        var obj = GameObject.Instantiate(mPlayer);

        obj.name = "Player";

        PositionTangent data;

        mWay.EvalPositionTangentParametrized(0, out data);
        mPlayer.transform.position = data.Position;
        mPlayer.transform.forward  = data.Tangent;

        curPlayerObj = obj;

        mPlayerScr = obj.GetComponent <Player>();
    }