Unity中C#脚本调用Animation.Evaluate方法出现CS1061错误求助
问题解决:Unity中Animation类无Evaluate方法的错误
问题原因
你代码里误用了Animation类型来调用Evaluate方法,但Unity的Animation类根本没有这个方法。Evaluate是AnimationCurve类的成员,用来根据时间参数获取曲线对应值,这才是实现弹跳轨迹需要的类型。
修复步骤
- 替换类型:把
DirectionalBouncePreferences中的Trajectory字段类型从Animation改为AnimationCurve,构造函数的对应参数也同步修改。 - 修正拼写错误:代码里的
InerpolatePositionTo是拼写错误,改为InterpolatePositionTo避免潜在问题。 - 编辑器赋值:在Unity Inspector面板中,给
Trajectory字段设置合适的曲线(比如抛物线曲线,模拟弹跳高度变化)。
修改后的完整代码
using System.Collections; using Coroutines; using Structures; using UnityEngine; namespace Physics { [System.Serializable] public class DirectionalBouncePreferences { public float Duration; public float Height; public AnimationCurve Trajectory; public DirectionalBouncePreferences(float duration, float height, AnimationCurve trajectory) { Duration = duration; Height = height; Trajectory = trajectory; } } public class DirectionalBounce { private readonly Transform _bouncer; private CoroutineExecutor _coroutineExecutor; private readonly DirectionalBouncePreferences _preferences; public DirectionalBounce(Transform bouncer, CoroutineExecutor coroutineExecutor, DirectionalBouncePreferences preferences) { _bouncer = bouncer; _coroutineExecutor = coroutineExecutor; _preferences = preferences; } public void BounceTo(Vector3 target, Vector3 startPosition) => _coroutineExecutor.Start(InterpolatePositionTo(target, startPosition)); private IEnumerator InterpolatePositionTo(Vector3 target, Vector3 startPosition) { var timer = new UnityTimer(); timer.Start(_preferences.Duration); while (!timer.IsTimeUp) { float t = timer.ElapsedTimePercent; Vector3 newPosition = CalculatePosition(target, startPosition, t); _bouncer.position = newPosition; yield return null; } } private Vector3 CalculatePosition(Vector3 target, Vector3 startPosition, float t) { return Vector3.Lerp(startPosition, target, t) + Vector3.up * _preferences.Trajectory.Evaluate(t) * _preferences.Height; } } }
额外优化:_bouncer本身就是Transform类型,无需重复调用_bouncer.transform,直接用_bouncer.position即可。
内容的提问来源于stack exchange,提问作者Nikolai
相关产品推荐
相关产品推荐

