首页 > Unity3D频道 > 【Unity3D研究院之游戏开发】 > Unity3D研究院之第一人称第三人称角色控制组件修改C#版本(二十九)
2012
06-19

Unity3D研究院之第一人称第三人称角色控制组件修改C#版本(二十九)

       之前MOMO在 Unity3D研究院之角色控制器组件研究(二十二)文章中向大家介绍了角色控制器组件。默认系统提供了JavaScript脚本的支持,可是我们还是喜欢用C#来编写脚本,本篇文章MOMO将把角色控制器的所有脚本全部改成C#语言。方便自己也方便大家学习,哇咔咔。首先,我们将角色控制器包引入工程中。如下图所示,默认提供的脚本除了MouseLook以外其它的都是JS脚本,本篇文章MOMO将把它们全部修改成C#。刚好也是答应Unity圣典的站长录制游戏开发视频,视频中我说下一节我将教大家怎么把角色控制器组件的脚本全部改成C#。

Unity3D研究院之第一人称第三人称角色控制组件修改C#版本(二十九) - 雨松MOMO程序研究院 - 1

首先把CharacterMotor.js修改成C# 它主要设置角色控制的系数,如运动、跳跃、移动、滑动等。第一人称与第三人称主角模型的移动与旋转的角度都最后都是在这里计算的,请大家好好看看这个类, 尤其是UpdateFunction()方法。

CharacterMotor.cs  

 

 接着把FPSInputControoler.js修改成C#语言。它用于第一人称控制角色移动,这里会监听主角按下的方向键最后传给CharacterMotor去计算模型的位置与旋转的角度。

FPSInputController.cs

 

MouseLook.cs因为已经是C#语言所以就不翻译了,然后是PlatFormInputController.cs 把它转成C#语言。它和FPSInputController一样会控制主角,但是它会更加精细的计算模型旋转的插值系数。

PlatformInputController.cs

 

接着是ThirdPersonCamera 我们把它改成C#语言。它主要控制第三人称视角时摄像机的控制。

ThirdPersonCamera.cs

 最后一个是ThirdPersonController我们同样把它修改成C#语言,它主要更新第三人称视角控制主角时播放的各种动画,主角移动,等等。

ThirdPersonController.cs

 最后我们用修改的脚本来控制第三人称视角主角的移动,直接上图大家仔细看看监测面板视图中的脚本绑定,这里问题不大,图片如果看不清点击即可查看大图。乖~~~

 

Unity3D研究院之第一人称第三人称角色控制组件修改C#版本(二十九) - 雨松MOMO程序研究院 - 2

 

脚本终于全部翻译完毕,其实在开发中大家可以去丰富这些脚本,灵活的运用它们。感谢Unity圣典的站长专门花钱买模型让我来写教程与录制视频教程。嚯嚯 既然是买的模型 我就不提供下载了 哇咔咔。

最后MOMO祝大家学习愉快。下回写点游戏AI的东西,让游戏中的怪物在更加聪明点吧。

最后编辑:
作者:雨松MOMO
专注移动互联网,Unity3D游戏开发
捐 赠写博客不易,如果您想请我喝一杯星巴克的话?就进来看吧!

Unity3D研究院之第一人称第三人称角色控制组件修改C#版本(二十九)》有 30 条评论

  1. itol 说:

    为啥我一缩放tranform移动就出问题了呢,缩小10倍的话就会出现走不动或方向不对问题[熊猫]

  2. 李云轩 说:

    再请问一下 雨松 大神 (还是关于 星球 行走的 Unity3D研究院之第一人称第三人称角色控制组件修改C#版本(二十九) - 雨松MOMO程序研究院 - 1 ), 我现在项目已经到了后期了, 基本上是我自己写出了 星球表面行走的character controller。 但是Unity自带的某些功能貌似还是没法实现。 我现在项目的问题是 人物即使在很陡的坡上 也能向上走上去 (Unity自带的character controller 里面的 slopeLimit 貌似就是管这个的)。 您看看您有什么好的见解吗? 或者哪里可以搞出 character controller 的源代码可以看看?

  3. shim 说:

    CharacterMotor.js里面,怎么改按键动作,我想让按ASD键实现转身效果,可是没有找到它原先代码写的地方

  4. 李云轩 说:

    请教一下,我现在的项目需要我在星球表面行走,用character control 来控制人物, 让角色受到始终指向圆心的“重力”可是unity的character control 只能让角色内置collider在Y轴转动, 不能动其它轴。这样我每次走到一定的位置, character controller 就无法碰到星球,也就无法动了这应该怎么办啊?

  5. design 说:

    …Links…

    […]It?s hard to come by knowledgeable people for this topic, however, you seem like you know what you?re talking about! Thanks[…]…

  6. 迷失深蓝 说:

    谢谢你雨松,问题解决了,原来是脚本有重名,删除那个JS脚本即可谢谢你!

  7. 迷失深蓝 说:

    你好雨松感谢你提供的脚本,但是我遇到了事情就是,我使用第一称视角那两个脚本CharacterMotor.cs和FPSInputController.cs 无疑问在引擎下运行一切正常,但是发布游戏之后运行游戏人物无法移动,甚至按下W键屏幕变蓝色是怎么回事呢

  8. lxl 说:

    想取消第三人称控制器的碰撞检测?希望它能穿过别的物体,悬在空中也不往下掉,除了把重力修改为0,请问还应该修改什么地方呀?

  9. 4f 说:

    看了你的教材……赞一个

  10. xz 说:

    MOMO,我现在在研究这个第一人称的用到的脚本,我看了你的22讲和这一讲,但是貌似对我没什么用,你有没有什么帖子或者知道什么视频详细的介绍了这些脚本的啊?

  11. 老鸟有点菜 说:

    两个zhi:“好人啊!”

  12. 成功之前 说:

    能给一个这样的脚本吗?

  13. 欧宇龙 说:

    有你这样的好人…. 突然有种想哭的冲动

  14. 欧宇龙 说:

    学 U3D的路上 能看到楼主这样的好文章! 心里真是倍感幸福!!!楼主,我代表全体1亿共青团员表示真切的慰问和祝福!!!

  15. 读者 说:

    网上很多免费模型下载啊,也有很多免费工具可以提取游戏里的模型、动画,何必花钱……

  16. 咔咔咔 说:

    碉堡了~

  17. 可可西里 说:

    好东西,收下了、、

  18. 支持雨松 说:

    支持雨松MOMO ,加油!!!

留下一个回复

你的email不会被公开。