RPG简单角色加载

来源:互联网 发布:网络mc第一红人比赛 编辑:程序博客网 时间:2024/04/25 06:45

一、地面

1.因为角色本身有刚体和碰撞器等组件,且刚体为非运动学刚体,所以在角色加载时,为了防止其以某一固定的加速度运动,而消失在视野中,所以给其添加了一个地面;

2.地面我是这样做的:在层级列表中右键—>3D Object—>Plane即可,因为Unity本身有的Plane中就存在碰撞体等组件,所以操作起来很容易,在这里可以给它简单的改变个颜色

2.1在Assets目录下,新建一个文件夹,起名为Materials,在文件夹中新建一个Materials材质,为了与以后新建的材质好区分,且方便看出其功能,所以这个材质的名称可以叫做Plane

2.2将建好的材质拖拽到Plane游戏对象所挂组件名为Mesh Renderer中下的Materials下的Element 0中(这一步也可以选择在Element中选择你刚建好的材质)如图所示


2.3通过点击上图中Main Maps下的Albedo后面的白色区域即可改变地面的颜色,如图,我将其改变成为绿色(如果想要地面的大小可以填充到整个屏幕上,可以适当的改变其尺寸)



二、角色的加载

1.首先,为了方便后续代码的管理,我在Assets下新建的一个名为Scripts的文件夹,从而管理所有的脚本。在其中新建一个名为Manager的文件夹(即此文件夹都是用作管理的脚本),在该文件夹下新建一个名为BaseActor的C# Script,用来加载角色。

2.因为在RPG中玩家和NPC会有很多相同的属性,比如刚体,碰撞器,动画管理器等等,所以为了方便管理和代码的复用性,BaseActor这个脚本作为一个基类,在以后的代码的扩展中可以添加很多的属性。

3.在加载角色的过程中,可能会分为加载的是玩家还是非玩家,所以可以通过一个公有的静态的接口先在层级列表中创建一个父类,然后可以通过这个接口传入的参数的类型来判断加载的游戏对象的类型,进而将其挂在父类身上,这个父类的创建也为以后玩家增加萌宠提供了便利的方法。代码如下:


4.为了方便测试,我新建了一个空的游戏对象,名为Test,并新建了一个名为Test的C# Script,将其挂在Test的 游戏对象下,通过系统接口和自己写的静态接口来进行测试,所有代码如下:



5.效果如图:


6.忘了说动作术,  actor.GetComponent<Animator>().runtimeAnimatorController = Resources.Load("AnimatorController/Loli/Loli_AnimCtrl") as RuntimeAnimatorController;这一句话就可以了

7.当然,我加载的角色,包括动作术都是有相应的资源,如果没有相应的资源完全可以做一个立方体的预制体,然后加载预制体进行练习。

本人小白,如果有错误望指正,谢谢....



原创粉丝点击