Unity 系统自带的 2D 角色资源预制体 CharacterRobotBoy 填坑日记

CharacterRobotBoy预制体确实是很好用的东西,但是要想以此为基础改成自己的东西还有一些容易犯错的地方:

  1. 角色是使用动画状态机控制,根据 Speed,vSpeed,Crouch,Ground 的值进行控制。
  2. 角色隐藏有两个点,天花板触点 CeilingCheck,GroundCheck要防止对,特别是在做动画时,不要让这两个点跟着跑了,否则容易出现永远掉不到地面等情况。
  3. 蹲下时要注意:一是上半身的盒型碰撞器要缩小,并放矮一些,也就是让角色蹲下时避免碰撞,能够通过地道。二是盒型碰撞器蹲下时不能与圆形碰撞器发生碰撞,否则会判定为顶上有东西,无法接触下蹲的状态。这个比较让人产生疑惑,应为案例中,初始状态这两个碰撞器是重叠的。
  4. 示例的机器人蹲下时,CeilingCheck 反而不用改变位置。但是自己做的时候要注意,如果蹲下时,头顶的 CeilingCheck 不处于“顶着”的碰撞物体内(例如很薄的地面在头上)就有可能出现蹲在地道里也可以站立的错误。解决办法是蹲下时,也让 CeilingCheck 下移一些,但是也不能太多,视具体情况。
  5. 动画机 Crouch 至 CrouchWalk 有一定的过度,并且 CrouchWalk 至 Crouch 是双过度(是双Transitions,不是双条件)。
  6. PlatformerCharacter2D类方法FixedUpdate 的42行建议加上:
    if (colliders[i].gameObject != gameObject && !colliders[i].isTrigger)
    否则角色可以在触发器上跳跃。

发表评论

电子邮件地址不会被公开。 必填项已用*标注