U3D测试用工程
来源:互联网 发布:mac db2客户端 编辑:程序博客网 时间:2024/04/28 04:36
像之前接触UE的时候那样,撸主决定先实现一个发射小球的例子来熟悉这里面的脚本操作以及组件的使用。
里面的代码都用的是撸主比较熟悉的js。基本上只要注意一下变量的定义方式就好,方法调用没有太大区别。
1.实例的最终效果
如图所示,利用自带的Rigidbody组件以及自己编写的简单脚本来实现简单的移动、灯光操作以及发射子弹的效果。
2.游戏的基本框架
Init()//程序初始化
Start()//启动线程
Run()//运行线程
Paint()//绘图程序
Update()//程序更新
Stop()//程序停止
其中update操作是这次实例测试的重点。
3.分步实现
0)场景搭建
1个作为角色的Cube以及20个作为墙体的Cube,为其加上Rigidbody物理组件,其中墙体用的Cube可以打组成一个空物体的子物体方便编辑。
同时一个直射灯光加上一个聚光灯,调整主摄像机的位置。
1)移动
由于U3D自带了各个轴向的操作,所以这里简单用Translate函数来变换位置即可。
其中定义speed变量用来控制移动速度。
代码如下
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);}
2)灯光操作
角色身上应该有灯光跟随,按下空格键之后聚光灯的焦点将会改变为角色中心。
代码如下:
var switchToTarget: Transform;function Update () {if(Input.GetButtonDown("Jump")) GetComponent(MyFollow).target = switchToTarget;}
3)发射子弹
FirePoint代表发射子弹生成的位置,这里为Cube指定了一个空的子物体,将其位置调整到Cube前端某处,并将FirePoint的值改为它,确保发射子弹不会“击中角色”
Bullet为创建的子弹,在这个例子里将这个值制定为一个prefab的sphere
Bullet和CurrBulletCnt为两个计数器,其中后者为private不可暴露修改
代码如下:
var FirePoint:Transform;var Bullet: Rigidbody;var BulletCnt:int;private var CurrBulletCnt:int;function Update () {if(FirePoint == null|| Bullet == null){return;}if (Input.GetButtonDown("Fire1")) {var clone: Rigidbody; clone = Instantiate(Bullet, FirePoint.position, FirePoint.rotation) as Rigidbody; clone.velocity =FirePoint.TransformDirection(Vector3.forward * 10); }}
阅读全文
0 0
- U3D测试用工程
- 用工具测试代码质量
- u3d时间类测试
- U3D--理解U3D的协程
- 有需要用工程思想开发软件吗?
- u3d
- u3d
- u3d
- u3d
- u3d
- u3d
- u3d
- u3d
- 用工荒
- 用工具测试游戏的平衡性-简单的打架机器人编写
- u3d 地形 U3d terrain
- 用工程眼光看待生活,心情好多了:当电容笔头折在音频口里
- 用工程眼光看待生活,心情好多了 2:修理一面墙的白板
- javascript的作用域、闭包、this使用
- mac下编译ijkplayer
- (更新补完)场景内部部件3D建模进度报告
- 史上最简单的 SpringCloud 教程 | 终章
- 大数据-五
- U3D测试用工程
- 开源 Markdown 编辑器,你值得拥有!
- java语言基础(58)——java基本类型的包装类
- 纯js动态时间显示
- 半兼容ARM的软核处理器编写-0
- w5500+stm32+cc2530的家庭网关小板
- Android的日志工具Log
- 设计模式之单例模式
- 堆的基本方法