U3D打箱子游戏

我是从传智播客的U3D视频里看到的,最近正好在学U3D就动手试了下

首先在一开始生成箱子(脚本代码可以添加在摄像机上):

		for (int i = 5; i> 0; i--) {
			for(int j = i;j > 0;j--){
				GameObject newObj = GameObject.CreatePrimitive(PrimitiveType.Cube);      //生成箱子(方块)
				newObj.transform.position = new Vector3(i,j,-18);          //生成一个位置向量
				newObj.AddComponent<Rigidbody>();  //生成的箱子添加脚本成为刚体。
			}
		}
然后再设置发射球的起始位置与鼠标指定位置:

                if (Input.GetMouseButtonDown (0)) {               //代表按下鼠标左键
			GameObject newObj = GameObject.CreatePrimitive(PrimitiveType.Sphere);        //生成球(圆形)
			newObj.transform.position = Camera.main.transform.position;       //生成的球的位置是当前摄像机位置
			newObj.AddComponent<Rigidbody>();           //使球成为刚体

			Vector3 v = Camera.main.ScreenToWorldPoint(new Vector3(Input.mousePosition.x,Input.mousePosition.y,-16f));        //鼠标相对于世界的向量坐标,这里的-16f是需要和箱子处于一个平面
			newObj.rigidbody.AddForce((newObj.transform.position - v) * 2,ForceMode.Impulse);   //给予球一个推力,让他往鼠标方向发射
		}

让每个脱离摄像机照射范围的对象自动销毁:把下面这个方法放到Des类中,类名随便起。

	void OnBecameInvisible(){
		Destroy (this.gameObject);
	}

在每个生成的cube对象上:newObj.AddComponent<Des>();

如果需要在发射子弹时有声音就把声音放到摄像机上,然后在发射子弹的代码中添加GameObject.Find("Main Camera").GetComponent<AudioSource>().Play();或者GameObject.Find("Main Camera").audio.Play();

这样声音存在了,但是听不到,还需要添加一个声音监听组件:Componnt->audio->audio listener,声源在哪监听器就放在哪


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值