Unity 2D开发新手遇CS7036错误:SkeletonGroundedState参数缺失求助
解决Unity C#错误CS7036:缺少构造函数必填参数
错误核心原因
报错Assets\SkeletonIdle.cs(10,120): error CS7036: There is no argument given that corresponds to the required formal parameter 'enemy' of 'SkeletonGroundedState.SkeletonGroundedState(Enemy, EnemyStateMachine, string, Enemy_Skeleton)'的本质是:你在SkeletonIdle.cs第10行调用SkeletonGroundedState的构造函数时,没有传入该构造函数要求的必填参数enemy。该构造函数需要按顺序传入4个参数:Enemy类型实例、EnemyStateMachine类型实例、状态名称字符串、Enemy_Skeleton类型实例,你当前的调用缺失了第一个参数。
具体修正步骤
- 定位
SkeletonIdle.cs第10行中实例化SkeletonGroundedState的代码片段。 - 获取当前敌人对象上的
Enemy组件引用(比如通过GetComponent<Enemy>()),或者使用已定义的Enemy类型变量。 - 补全构造函数调用的参数,确保参数数量、类型、顺序与构造函数定义完全匹配。示例修正代码:
// 假设enemyComp是获取到的Enemy类型实例,stateMachine是已定义的状态机变量 SkeletonGroundedState idleState = new SkeletonGroundedState(enemyComp, stateMachine, "idle", this);
额外调试提示
- 打开
SkeletonGroundedState类的定义文件,再次核对构造函数的参数列表,确保传入的每个参数类型都对应一致。 - 若使用继承实现状态类,确认父类构造函数的参数要求是否与子类一致,避免参数传递遗漏。
内容的提问来源于stack exchange,提问作者Arda Zengin
相关产品推荐
相关产品推荐

