【Unity 3D】学习笔记三十八:角色控制器

角色控制器

在unity中,已经帮我们实现的上下左右跳等动作,并将他们封装成了角色控制器。角色控制器保存在unity标准资源包中,可以说是非常的强大。可以模拟第一或者第三人称视角。不受刚体的限制,非常适用于表现游戏中的主角运动。首先还是导入标准资源包。在project视图中点击右键,选择import package——character controller

第一人称

第一人称好比用自己的眼睛来观察游戏世界。其原理就是控制scene视图中的摄像机的移动,所以屏幕显示永远都是主角正前方的画面。

将角色控制器导入后,在project视图中找到该角色控制组件,然后将first person controller拖至hierarchy视图中即可,此时它将以一个胶囊体对象的形式出现在scene视图中。然后编辑下胶囊的位置。

需要注意的是:第一人称组件的Y轴一定要高于地面,否则游戏运行后,它将坠落到地面之下。

选择first person controller对象后,右侧inspector视图中可以看到这个对象一共条脚本。

其中mouselook用来控制第一人称视角通过鼠标来观察这个视图。

charactermotor用来监听键盘时间,控制主角前后左右的移动。

pfsinputcontroller用来监听特殊的space按键,实现跳跃功能。

这三个脚本都可以打开,进行修改从而实现更好的控制效果。

运行后:

第三人称

第三人称的原理是:在游戏场景中包含主角对象和摄像机对象,主角移动后,摄像机永运跟着主角移动。按上文第一人称将第三人称3rd person controller添加到hierarchy中。

时间: 2024-10-13 16:04:32

【Unity 3D】学习笔记三十八:角色控制器的相关文章

PHP学习笔记三十八【下载】

<?php //演示下载一个图片 $file_name="SunSet.jpg"; $file_name=iconv("utf-8","gb2312",$file_name); //对文件名进行处理,因为php对中文支持不够友好[把utf-8 转为 gb2312] //1.打开文件,先判断是否存在 if(!file_exists($file_name)){ echo "文件不存在"; return ; } $fp=fop

JAVA学习笔记(三十八)- 创建实现Runnable接口的线程

创建实现Runnable接口的线程 /* * 创建线程方式二:实现Runnable接口 * 步骤: * 1.创建一个Runnable接口的实现类 * 2.实现run方法 * 3.创建一个实现类的实例 * 4.创建Thread实例,将实现类的实例作为参数传入 * 5.调用start方法,启动线程并运行run方法 */ class MyDemo implements Runnable{ @Override public void run() { for (int i = 1; i <= 50; i+

【Unity 3D】学习笔记二十八:unity工具类

unity为开发者提供了很多方便开发的工具,他们都是由系统封装的一些功能和方法.比如说:实现时间的time类,获取随机数的Random.Range( )方法等等. 时间类 time类,主要用来获取当前的系统时间. using UnityEngine; using System.Collections; public class Script_04_13 : MonoBehaviour { void OnGUI() { GUILayout.Label("当前游戏时间:" + Time.t

【Unity 3D】学习笔记三十四:游戏元素——常用编辑器组件

常用编辑器组件 unity的特色之一就是编辑器可视化,很多常用的功能都可以在编辑器中完成.常用的编辑器可分为两种:原有组件和拓展组件.原有组件是编辑器原生的一些功能,拓展组件是编辑器智商通过脚本拓展的新功能. 摄像机 摄像机是unity最为核心组件之一,游戏界面中显示的一切内容都得需要摄像机来照射才能显示.摄像机组件的参数如下: clear flags:背景显示内容,默认的是skybox.前提是必须在render settings 中设置天空盒子材质. background:背景显示颜色,如果没

【Unity 3D】学习笔记三十二:游戏元素——游戏光源

游戏光源 在3D游戏中,光源是一个非常具有特色的游戏组件.用来提升游戏画面质感的.如果没有加入光源,游戏场景可能就会显得很昏暗.在unity中提供了三种不同的光源类型:点光源,聚光灯,平行光. 点光源 顾名思义,点光源是从一个点向周围散发出光的光源,就像电灯一样.创建点光源在hierarchy视图中点击create--point light: 创建完以后,点击点光源对象,在右侧inspector视图中可以看到点光源的所有信息: type:光源的类型.有point(点光源),directional

angular学习笔记(二十八)-$http(6)-使用ngResource模块构建RESTful架构

ngResource模块是angular专门为RESTful架构而设计的一个模块,它提供了'$resource'模块,$resource模块是基于$http的一个封装.下面来看看它的详细用法 1.引入angular-resource.min.js文件 2.在模块中依赖ngResourece,在服务中注入$resource var HttpREST = angular.module('HttpREST',['ngResource']); HttpREST.factory('cardResource

Android学习笔记(十八)——使用意图筛选器和实现浏览网页(附源码)

使用意图筛选器 点击下载源码 1.创建一个Intents项目,给该项目添加一个新类,命名为MyBrowserActivity,在res/layout文件夹下新增一个browser.xml: 2.在AndroidManifest.xml文件中添加如下代码: 添加权限: <uses-permission android:name="android.permission.CALL_PHONE" /> <uses-permission android:name="a

《Javascript权威指南》学习笔记之十八:BOM新成就(1)--客户端存储数据(Web SQL DataBase实现)

使用本地存储和会话存储可以实现简单的对象持久化,可以对简单的键值对或对象进行存储.但是,对于比较复杂的关系数据进行处理时,就要用Web SQL Database.浏览器对Web SQL Database的支持情况如图: 一.如何使用Web SQL Database <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-t

angular学习笔记(二十八-附2)-$resource中的promise对象

下面这种promise的用法,我从第一篇$http笔记到$resource笔记中,一直都有用到: HttpREST.factory('cardResource',function($resource){ return $resource('/card/user/:userID/:id',{userID:123,id:'@id'},{charge:{method:'POST',params:{charge:true},isArray:false}}) }); HttpREST.factory('h