unity3d添加武器功能
2015-12-06 10:50
399 查看
using UnityEngine; using System.Collections; public class TankWeapons : MonoBehaviour { public GameObject shell; public float shootPower;//确定子弹的发射力 public Transform shootPoint;//确定子弹的发射点。新建一个tank的空子物体,用来记录子弹的发射位置 void Update () { if (Input.GetKeyDown (KeyCode.Space)) {//当按下空格时,调用Shoot()函数,所以用GetKeyDown Shoot(); } } void Shoot(){ GameObject newShell = Instantiate (shell, shootPoint.position, shootPoint.rotation) as GameObject;//用Instantiate函数克隆一个Object,并将Object转化为GameObject,存于newShell Rigidbody r = newShell.GetComponent<Rigidbody> ();//r定义为newShell的刚体 r.velocity = shootPoint.forward * shootPower;//定义r的速度的方向及大小,速度方向为shootPoint.forward,大小为shootPower } }
注:
1.Instantiate函数的定义为:public static Object Instantiate(Object original, Vector3 position, Quaternion rotation);
作用为复制一个Object并返回。(由于此代码中要的是GameObject,所以要进行一次类型转换,C#中直接用as转换)
original为要复制的对象,position为返回对象的位置,rotation为返回对象的旋转角。
2.r.velocity的方向不可以直接使用(0,0,1),因为此z轴的向量是相对于世界坐标而言的,而forward是针对对象自身而言的。
相关文章推荐
- Kinect结合Unity3D引擎开发体感游戏(一)
- Unity3D中脚本的执行顺序和编译顺序
- Unity3D动态对象优化代码分享
- Unity3D获取当前键盘按键及Unity3D鼠标、键盘的基本操作
- Unity3d获取系统时间
- unity3d发布apk在android虚拟机中运行的详细步骤(unity3d导出android apk)
- Unity3D游戏引擎实现在Android中打开WebView的实例
- unity3d调用手机或电脑摄像头
- Unity3d发布IOS9应用时出现中文乱码的解决方法
- 分享一个开源的网络游戏服务器架构—HouHai
- Unity3D插件详细评测及教学下载
- Unity3D上路_01-2D太空射击游戏
- Unity3D上路_02-第一视角射击游戏
- Unity3D上路_03-塔防游戏
- Unity3D上路_04-基础资源介绍
- Unity3D上路_05-网络相关