Unity3D游戏开发之愤怒的小球

转载:原文出处


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



       

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

[csharp]  view plain copy print ? 在CODE上查看代码片 派生到我的代码片
  1. using UnityEngine;  
  2. using System.Collections;  
  3.   
  4.   
  5. public class GameInit : MonoBehaviour {  
  6.       
  7.     //定义发射小球时的音效源  
  8.     public AudioSource mAudio;  
  9.       
  10.     //自动销毁游戏对象的类  
  11.     private class AutoDestroy : MonoBehaviour  
  12.     {  
  13.       //当离开摄像机范围时触发  
  14.       void OnBecameInvisible()  
  15.       {  
  16.          Destroy(this.gameObject);  
  17.       }  
  18.     }  
  19.       
  20.     //定义颜色数组  
  21.     private Color[] mColors=new Color[]{Color.blue,Color.gray,Color.green,  
  22.                   Color.red,Color.yellow,Color.white};  
  23.       
  24.     void Start ()   
  25.     {  
  26.        //创建36个箱子  
  27.        for(int i=0;i<6;i++)  
  28.        {  
  29.           for(int j=0;j<6;j++)  
  30.           {  
  31.               //创建Cube  
  32.               GameObject mObject=GameObject.CreatePrimitive(PrimitiveType.Cube);  
  33.               //为Cube赋予颜色值  
  34.               mObject.renderer.material.color=mColors[Random.Range(0,mColors.Length)];  
  35.               //设置位置  
  36.               mObject.transform.position=new Vector3(i,j,1);  
  37.               //添加刚体和自动销毁  
  38.               mObject.AddComponent<Rigidbody>();  
  39.               mObject.AddComponent<AutoDestroy>();  
  40.           }  
  41.        }  
  42.     }  
  43.       
  44.     void Update ()   
  45.     {  
  46.        if(Input.GetMouseButtonDown(0))  
  47.        {  
  48.            //创建一个小球  
  49.            GameObject mBall=GameObject.CreatePrimitive(PrimitiveType.Sphere);  
  50.            //设置小球初始化位置  
  51.            mBall.transform.position=Camera.main.transform.position;  
  52.            //添加刚体结构  
  53.            mBall.AddComponent<Rigidbody>();  
  54.            //添加自动销毁  
  55.            mBall.AddComponent<AutoDestroy>();  
  56.            //目标位置  
  57.            Vector3 mTarget = Camera.main.ScreenToWorldPoint(new Vector3(Input.mousePosition.x,Input.mousePosition.y, 1));  
  58.            //方向向量  
  59.            Vector3 mDirection = mTarget - Camera.main.transform.position;  
  60.            //设置小球贴图  
  61.            mBall.renderer.material.mainTexture =  
  62.                     (Texture)Resources.LoadAssetAtPath("Assets/Resources/AngryBird.jpg"typeof(Texture));  
  63.            //为小球施加作用力  
  64.            mBall.rigidbody.AddForce(mDirection * 10, ForceMode.VelocityChange);  
  65.            //播放发射小球的音效  
  66.            mAudio.Play();  
  67.        }  
  68.     }  
  69. }  
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值