通过按钮来控制模型的移动与镜头的跟随
来源:互联网 发布:java 日志系统架构 编辑:程序博客网 时间:2024/05/18 00:30
上一章介绍了模型的旋转与平移,本章介绍一些好玩的,通过按钮来控制模型的移动与镜头的跟随,脚本参数的传递。个人觉得Unity3D 这套游戏引擎真的很棒,它可以为开发者节省时间。用更多少的脚本,可以实现更多的功能。先赞一下,哇咔咔~废话不多说了,入正题!
首先在3D世界中创建一个箱子模型,然后添加一个脚本,命名为 js0绑定到这个箱子中。在添加一个脚本,命名为js1 ,同样绑定到这个箱子上,用来实现对象的创建与调用方法参数的传递 ~
var Control; 这里声明一个控制类的对象,用来进行参数的传递,调用方法。
Getomponent(js1): 得到脚本名称为js1的对象,这里把值赋给Control,就可以使用js1脚本中的方法了,下面的代码中通过这个对象调用模型的移动方法。
Input.GetKey(KeyCode): 这个方法返回一个Bool 判断当前按键是否被按下,当然这里只能运行在PC上才可以感应按钮,因为IOS的设备上没有按键,以后我会介绍在IOS上添加游戏摇杆的功能,本章我们先学习一下PC上的基本按钮响应。
下面代码
实现按下“W”控制物体向前
实现按下“S”控制物体向后
实现按下“A”控制物体向左平移
实现按下“D”控制物体向右平移
实现按下“Q”控制物体向左旋转
实现按下“E”控制物体向右旋转
js0.js 代码
01
//旋转移动速度
02
var
Speed = 50;
03
04
//控制对象
05
var
Control;
06
07
function
Update()
08
{
09
//得到控制对象
10
Control = GetComponent(js1);
11
12
//判断按键
13
14
if
(Input.GetKey(KeyCode.W))
15
{
16
//前进
17
Control.ForWard();
18
19
}
else
if
(Input.GetKey(KeyCode.S))
20
{
21
//后退
22
Control.Back();
23
}
24
25
if
(Input.GetKey(KeyCode.A))
26
{
27
//前左
28
Control.GLeft();
29
30
}
else
if
(Input.GetKey(KeyCode.D))
31
{
32
//后右
33
Control.GRight();
34
}
35
36
if
(Input.GetKey(KeyCode.Q))
37
{
38
//左旋转
39
40
Control.leftRotate(Vector3.up *Time.deltaTime * -Speed);
41
42
}
else
if
(Input.GetKey(KeyCode.E))
43
{
44
//右旋转
45
Control.RightRotate(Vector3.up *Time.deltaTime * Speed);
46
47
}
48
49
}
js1.js 代码
参数的传递可以使用obj进行传递,代码中我将旋转的角度做为参数传递到了js1.js中控制模型旋转。
Vector3 标示一个3D的向量单位,它可以标示模型的三个方向,这里根据旋转的角度与移动的向量设置它。
01
//前进速度
02
var
Speed = 50;
03
04
//前进
05
function
ForWard()
06
{
07
transform.Translate(Vector3.forward * Time.deltaTime *Speed);
08
}
09
10
//后退
11
function
Back()
12
{
13
transform.Translate(Vector3.forward * Time.deltaTime * -Speed);
14
}
15
16
//向左
17
function
GLeft()
18
{
19
transform.Translate(Vector3.right * Time.deltaTime *-Speed);
20
}
21
22
//向右
23
function
GRight()
24
{
25
transform.Translate(Vector3.right * Time.deltaTime * Speed);
26
}
27
28
//传递参数
29
30
//左旋转
31
function
leftRotate(obj)
32
{
33
transform.Rotate(obj);
34
}
35
36
//右旋转
37
function
RightRotate(obj)
38
{
39
transform.Rotate(obj);
40
}
OK点击运行,通过按键我们可以正常的控制模型平移与旋转,但是现在有两个问题 1, 主摄像机不能跟随控制模型, 2 、模型可以横穿过山丘,感觉很假。下面我们解决这两个问题。
在Unity3D标准资源的脚本中系统帮我们写好了跟随脚本.如下图所示,点击Import Package – > Scripts 将系统脚本导入。
选中摄像机 点击Component – > Camera-Control – > Smoot Follow ,给主摄像机添加一个跟随脚本。
跟随脚本添加完以后,须要指定一个跟随的物体,下面红框内将跟随的物体Cube拖动进来,这里Cube就是我们上面控制的模型,那么这样,摄像机将会一直在身后跟随我们控制的模型。下面是一些跟随的参数,设置 跟随的距离 高度等等,盆友们手动的修改一下运行游戏就可以看出来变化,。
控制物体的碰撞可以使用 选中模型, Component – > Physics – > Rigidbody 设置这个模型的重力碰撞。那么这样你控制的模型就不会穿过山丘,而是感应重力碰撞。
点击运行游戏,看看效果,控制箱子行走的同时,我们可以清晰的看出旁边的树木被物理碰撞所干扰,前后,左右,旋转 完全OK .大家快试试吧。哇咔咔~~
明天开始MOMO又要开始处理一部分iPhone 的界面图形化开发,Tomorrow is another day ,加油
原文链接:http://www.xuanyusong.com/archives/505
0 0
- 通过按钮来控制模型的移动与镜头的跟随
- unity3d,制作自己的第一个射击游戏demo,实现镜头跟随和键盘控制移动
- 简单的镜头跟随
- 镜头跟随GameObject移动。
- Unity3d_镜头跟随鼠标移动
- IOS控制按钮的移动
- Unity3D摄像机跟随物体移动的代码控制
- Unity通过射线碰撞选择模型,然后控制模型的移动、旋转、缩放等动作
- 通过键盘控制盒子的移动与缩放
- Jquery 通过切换按钮中图标的类来控制出现不同的按钮图标
- 学习Unity的有趣时刻 1.镜头跟随
- U3D多人镜头跟随, FC热血格斗,PC 地狱潜行者 的镜头 代码示例
- 通过按钮来切换屏幕的旋转
- Jquery通过方向键(左上右下) 来控制表格内输入框的自由移动
- java事件机制之通过上下左右键来控制小球为位置的移动演示
- 跟随屏幕移动的图像
- 跟随鼠标移动的时钟
- 跟随鼠标移动的小球
- chromeplus
- C语言-----Scanf原理
- iOS界面-仿网易新闻左侧抽屉式交互
- machine learning package
- UVa494 - Kindergarten Counting Game,java写的
- 通过按钮来控制模型的移动与镜头的跟随
- PAT1004.BASIC 成绩排名 (20)
- 动态规划之01背包
- html5游戏引擎-Pharse.js学习笔记(一)
- hdu 4496 D-City(并查集)
- 最少拦截系统_DP
- 数据库事务中的脏读,虚读和不可重复读
- Ubuntu 14.04 LTS中怎样解决系统设置残缺的问题
- 位块传输 BitBlt与StretchBlt