- 最后登录
- 2021-9-15
- 注册时间
- 2011-7-15
- 阅读权限
- 100
- 积分
- 50625
  
- 纳金币
- 53202
- 精华
- 32
|
本文分享的是【unity3d脚本入门】课程目的与前提:实例
通常在运行时创建(create)对象(如游戏正在播放).要这样做,我们要用到Instantiate函数.
让我们讲述如何在每次按下开火按钮(或按鼠标左键或左Ctrl键)后通过实例(建立)一个新的游戏对象.
那么我们怎么做呢?我们希望用户像往常一样走动,当按下开火按钮,实例化创建一个新的对象.思考以
下几点:
1. 哪个物体做我们的实例?
2. 在哪里做实例化?
关于哪个对象到实例,最好的解决办法是暴露变量.这意味着我们随时可以通过拖拽游戏对象到变量来
改变对象为实例.
至于哪里做实例化,现在我们只要实现当按下开火按钮时在用户(主相机)当前位置创建新的游戏对象.
实例化函数有三个参数 1)我们要建立一个对象,(2)对象的三维位置和(3)对象的旋转位置.完整的代码
如下(Create.js):
var newObject : Transform;
function Update () {
if (Input.GetButtonDown("Fire1")) {
Instantiate(newObject, transform.position, transform.rotation);
}
}
不要忘记, transform.position和transform.rotation是附加到脚本的transform的位置和选择的,这里假
如是主相机(Main Camera).然而,当一个对象被实例化,通常将对象设置为预设(prefab),我们现在将
Cube1游戏对象设置为预设.
- 首先,让我们嫩创建一个空的预设,选择Assets->Create-> refab.重命名这个预设为”Cube”.
- 从层次视图拖拽Cube1游戏对象到项目视图的Cube预设上.注意预设图标的变化.
现在我们创建Javascript代码.
- 创建一个新的脚本和命名为Create ,并插入上面的代码.
- 把这个脚本赋予给主相机(Main Camera)和将Cube预设赋予主相机上的newObject 变量.
- 运行游戏,并向以往一样走动.每当按下开火按钮(鼠标左键或左Ctrl)你都能看到一个新的Cube出现.
|
|