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

【Unity3D脚本入门】访问组件

[复制链接]

3795

主题

2

听众

5万

积分

版主

Rank: 7Rank: 7Rank: 7

纳金币
53202
精华
32

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

跳转到指定楼层
楼主
发表于 2013-1-30 11:48:55 |只看该作者 |倒序浏览
本文分享的是【unity3d脚本入门】访问组件:
访问组件
作为一个游戏对象能有多个脚本(或其他组件).它不可避免的要访问其他组件的函数或变量.Unity中通过GetComponent() 函数来实现这个.我们现在要添加另外的脚本来让按下跳跃键(默认空格键)时让聚光灯射向Cube1.
让我们先思考这个问题,我们要做的是:
1. 监视跳跃键被按下.
2. 当跳跃键按下时,聚光灯将照射Cube1.我们如何做到这一点呢?那么Follow脚本包含一个”target”变量,其值确定哪些游戏对象被聚光灯所照射.我们需要为这个值设定一个新的参数.我们可以写代码给这个值为cube(看本节后的”写代码”),但我们知道暴露了这个变量,通过GUI上指定变量的值是更好的办法:
- 创建一个新的JavaScript脚本并重命名为Switch,
添加代码到Switch.js:
var switchToTarget : Transform;
function Update () {
if (Input.GetButtonDown("Jump"))
GetComponent(Follow).target = switchToTarget;
}
尤其注意关注GetComponent()的值,这将返回一个参考给Follow脚本,我们就可以用它来访问”target”变量.
-添加Switch脚本到聚光灯和将在检视视图中指定Cube1给switchToTarget值.
- 运行游戏,走动验证聚光灯像往常一样跟随着你,然后你按下空格键,聚光灯的焦点将转到Cube1上.
这样写代码

前面的教程中我们提到,可以通过写代码的方式指定变量(而不是通过Unity界面),让我们看看如何做.
记住,这只是用来比较,建议通过Unity界面来给变量赋值.早先按下空格时告诉聚光灯聚焦到Cube1上.
我们的解决方案是做一个暴露变量在Switch脚本,我们便可以在Unity的界面上拖拽Cube1上去.在代码中主要有两种方法做到这一点:
1. 使用游戏对象的名称(name)
2. 使用游戏对象的标签(tag)


1. 游戏对象名称
可以从层次视图中看到游戏对象的名称.用GameObject.Find()函数来使这些名称作为参数.
因此如果我们想按下跳跃键时候切换聚光灯从主相机到Cube1,代码如下::
function Update () {



if (Input.GetButtonDown("Jump"))
{
var newTarget = GameObject.Find("Cube").transform;
GetComponent(Follow).target = newTarget;
}
}
注意没有暴露变量而是直接使用代码.查看API获得更多Find()的用法.
2. 游戏对象标签
游戏对象表情是字符串用于识别一个组件.在检视视图中点击Tag按钮查看内建的标签.你也可以创建自己的标签. GameObject.FindWithTag()函数能通过具体标签寻找组件和返回一个字符串作为参数.
代码如下:
function Update () {
if (Input.GetButtonDown("Jump"))
{
var newTarget = GameObject.FindWithTag("Cube").transform;
GetComponent(Follow).target = newTarget;
}
}
分享到: QQ好友和群QQ好友和群 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
转播转播0 分享淘帖0 收藏收藏0 支持支持0 反对反对0
回复

使用道具 举报

3795

主题

2

听众

5万

积分

版主

Rank: 7Rank: 7Rank: 7

纳金币
53202
精华
32

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

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

1. Unity3D脚本教程目的

2.Unity3D脚本前提

3. Unity3D脚本命名规范

4. Unity3D脚本Player输入

5. Unity3D脚本连接变量

7. Unity3D脚本实例

8. Unity3D脚本调试

9. Unity3D脚本常见脚本类型

回复

使用道具 举报

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

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

GMT+8, 2025-7-29 23:24 , Processed in 0.084254 second(s), 32 queries .

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

© 2008-2019 Narkii Inc.

回顶部