查看: 1148|回复: 1
打印 上一主题 下一主题

【Unity3D脚本入门】Player输入

[复制链接]

3795

主题

2

听众

5万

积分

版主

Rank: 7Rank: 7Rank: 7

纳金币
53202
精华
32

活跃会员 优秀版主 推广达人 突出贡献 荣誉管理 论坛元老

跳转到指定楼层
楼主
发表于 2013-1-30 11:41:47 |只看该作者 |倒序浏览
本文分享的是【unity3d脚本入门】Player输入:

Player输入



我们第一个项目是在一个简单的游戏

场景中走动.

设置场景



- 启动Unity.

首先,让我们创建一个用来行走的平面,

用一个扁的Cube.

- 创建一个Cube,缩放x,y,z为”5,0.1,5”,

它现在看起来应该是一个大平板.在层

次视图(Hierarchy View)中重命名

为”Plane”.

- 创建第二个Cube,将它放置在这个大

平板的中心位置.如果在游戏视图

(Game View)看不到它们,那么改变主

相机位置使它们可见.重命名该物体

为”Cube1”.

- 你也应该建立一个点光源,并且放在大平板之上,使它们更清晰.

- 保存 选择菜单File->Save As保存这个场景文件.

我们第一个脚本



我们现在开始游戏设计.我们打算让Player移动.

通过控制主相机的位置来实现,要做到这一点,我们现在要写一个脚本来读取键盘的输入.然后把脚本

和相机链接起来(更多的在下一节).

- 首先创建一个空脚本.选择” Assets->Create->Javascript”并在项目面板重命名为”Move1”.

- 双击Move1脚本,它将打开,并且默认包含有Update()函数,我们将我们的代码插入这个函数,任何加

入Update()函数中的代码都将在每一帧(frame)执行一次.

在Unity中为了移动一个游戏对象我们需要用transform来更改它的位置,属于Translate,这个

Translate函数有x,y和z三个参数,因为我们想通过光标键控制主相机,我们只需要下面这些代码,来决

定按键按下后参数的变化:

function Update () {

transform.Translate(Input.GetAxis("Horizontal"), 0, Input.GetAxis("Vertical"));

}

Input.GetAxis()函数返回-1或1的一个值,例如在横轴上左光标键映射为-1,有光标键映射为1.







注意参数0为y轴,因为我们不希望镜头上仰.横轴和竖轴是在输入设置(Input Settings)中预先定义好的.从

Edit->roject Settings->Input中很容易重定义按键映射.

- 打开脚本Move1并输入上面的代码,注意大小写.

连接脚本



现在我们第一个脚本写完了,怎么让Unity的游戏对象具有这个脚本行为呢?我们要做的是赋予这个脚

本给游戏对象来体现脚本的行为.

- 首先点击你希望应用此脚本的游戏对象,对于我们而言,这里将是主相机,你可以从层次视图和场景

视图中选择它.

- 然后从菜单中选择Components->Scripts->Move1 ,将这个脚本赋予相机,你在检视面板中看到主相

机有Move1这个组件.

提示:你也可以从项目视图拖拽脚本到场景视图的游戏对象上.

- 点击播放按钮运行游戏,你能通过光标键或W,S,A,D键来移动主相机.你也许注意到了,摄影机移动的

有点太快了,让我们来找一种更好的办法来控制摄像头的速度.



Delta time

正如先前在Update()函数里的代码,相机的速度是按帧执行的.然而我们需要游戏对象的移动按秒执行.

为了实现这一目标,我们需要将返回的值乘以Input.GetAxis() 函数中的Time.deltaTime:

var speed = 5.0;

function Update () {

var x = Input.GetAxis("Horizontal") * Time.deltaTime * speed;

var z = Input.GetAxis("Vertical") * Time.deltaTime * speed;

transform.Translate(x, 0, z);

}

- 将上面的代码更新到Move1脚本.

注意Update()外的这个速度变量.这是所为的暴露变量,这个变量会在检视面板中看到.它是很有用的,

实际使用中可以方便的调整它的值,这比改变代码来说方便的多.
分享到: QQ好友和群QQ好友和群 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
转播转播0 分享淘帖0 收藏收藏0 支持支持0 反对反对0
回复

使用道具 举报

3795

主题

2

听众

5万

积分

版主

Rank: 7Rank: 7Rank: 7

纳金币
53202
精华
32

活跃会员 优秀版主 推广达人 突出贡献 荣誉管理 论坛元老

沙发
发表于 2013-1-30 14:00:31 |只看该作者
目录

1. Unity3D脚本教程目的

2.Unity3D脚本前提

3. Unity3D脚本命名规范

5. Unity3D脚本连接变量

6. Unity3D脚本访问组件

7. Unity3D脚本实例

8. Unity3D脚本调试

9. Unity3D脚本常见脚本类型

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

手机版|纳金网 ( 闽ICP备2021016425号-2/3

GMT+8, 2025-7-29 12:55 , Processed in 0.062038 second(s), 32 queries .

Powered by Discuz!-创意设计 X2.5

© 2008-2019 Narkii Inc.

回顶部