首页 > 其他 > 详细

Unity3D游戏开发之愤怒的小球

时间:2014-03-19 17:40:19      阅读:556      评论:0      收藏:0      [点我收藏+]

        今天为大家带来的是一个简单的小游戏——愤怒的小球。首先来看看效果吧:


bubuko.com,布布扣

       

       当游戏开始时,会在场景中产生36个箱子,当玩家在屏幕上点击鼠标的时候,就会向这个由36个箱子构成的墙面发射一个小球。下面来看如何实现这一效果吧!

using UnityEngine;
using System.Collections;


public class GameInit : MonoBehaviour {
	
	//定义发射小球时的音效源
	public AudioSource mAudio;
	
	//自动销毁游戏对象的类
	private class AutoDestroy : MonoBehaviour
	{
	  //当离开摄像机范围时触发
	  void OnBecameInvisible()
	  {
	     Destroy(this.gameObject);
	  }
	}
	
	//定义颜色数组
	private Color[] mColors=new Color[]{Color.blue,Color.gray,Color.green,
	              Color.red,Color.yellow,Color.white};
	
	void Start () 
	{
	   //创建36个箱子
	   for(int i=0;i<6;i++)
	   {
	      for(int j=0;j<6;j++)
	      {
	          //创建Cube
	          GameObject mObject=GameObject.CreatePrimitive(PrimitiveType.Cube);
	          //为Cube赋予颜色值
	          mObject.renderer.material.color=mColors[Random.Range(0,mColors.Length)];
	          //设置位置
	          mObject.transform.position=new Vector3(i,j,1);
	          //添加刚体和自动销毁
	          mObject.AddComponent<Rigidbody>();
	          mObject.AddComponent<AutoDestroy>();
	      }
	   }
	}
	
	void Update () 
	{
	   if(Input.GetMouseButtonDown(0))
	   {
	       //创建一个小球
	       GameObject mBall=GameObject.CreatePrimitive(PrimitiveType.Sphere);
	       //设置小球初始化位置
	       mBall.transform.position=Camera.main.transform.position;
	       //添加刚体结构
	       mBall.AddComponent<Rigidbody>();
	       //添加自动销毁
	       mBall.AddComponent<AutoDestroy>();
	       //目标位置
	       Vector3 mTarget = Camera.main.ScreenToWorldPoint(new Vector3(Input.mousePosition.x,Input.mousePosition.y, 1));
	       //方向向量
           Vector3 mDirection = mTarget - Camera.main.transform.position;
           //设置小球贴图
           mBall.renderer.material.mainTexture =
                    (Texture)Resources.LoadAssetAtPath("Assets/Resources/AngryBird.jpg", typeof(Texture));
           //为小球施加作用力
           mBall.rigidbody.AddForce(mDirection * 10, ForceMode.VelocityChange);
           //播放发射小球的音效
           mAudio.Play();
	   }
	}
}

         代码注释很清楚,这里不再赘述了,谢谢大家!

Unity3D游戏开发之愤怒的小球,布布扣,bubuko.com

Unity3D游戏开发之愤怒的小球

原文:http://blog.csdn.net/qinyuanpei/article/details/21535409

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!