本文主要详细介绍了玩弹球和砖块的合一游戏。本文中的示例代码非常详细,具有一定的参考价值。感兴趣的朋友可以参考一下。
本文分享Unity实现弹球和砖块游戏的具体代码,供大家参考。具体内容如下
创建接口记录
摄像机
所需脚本
1射线摄线
使用系统。收藏;
使用系统。集合。泛型;
使用UnityEngine
公共类she xian:monobehavior {
公共游戏对象blit//将公共游戏对象定义为子弹
AudioSource au//定义au声音效果
//使用它进行初始化
void Start () {
au=getcomponent audiosource();//分配声音效果
}
//每帧调用一次Update
void Update () {
雷雷;
RaycastHit命中;
//1.创建光线
//2.射线检测和反馈结果
//用鼠标左键点击某个东西,然后给我们对象的信息。
如果(输入。GetMouseButtonDown(0))
{
//将相机屏幕点转换为线以获得鼠标坐标
ray=camera . main . screenpointtoray(input . mouse position);
//创建光线
If (physics.raycast (ray,out hit))//第一个参数是光线,第二个是碰撞物体。
{
//定义一个bt进行实例化的子弹,实例化对象(实例化对象,定位【摄像头当前位置】,不旋转)
游戏对象bt=游戏对象。Instantiate(blit,transform.position,四元数. identity);
au。play();//播放声音效果
//给一个方向点击位置的坐标——当前位置=一个向量;
vector 3 dis=hit . point-transform . position;
//给bt一个力
bt。GetComponentRigidbody()。add force(dis * 300);
}
}
}
}
将球体预制件拉入Blit box,添加音源组件,将AudioClip拉入子弹音效;唤醒时取消播放
地板
将音乐添加到地板作为背景音乐,然后更改材质的颜色。
空物体copy
用于实例化砖块和挂载copysp脚本。
使用系统。收藏;
使用系统。集合。泛型;
使用UnityEngine
公共类副本sp : MonoBehaviour {
公共游戏对象ga;//定义一个游戏对象
//使用它进行初始化
Void Copy () {//实例化预成型
for(int I=0;i 25I )//使用for循环实现多个实例化
{
//定义一个随机向量x坐标,y坐标,z坐标
Vector3 ve3=新Vector3(随机。范围(-5.0f,5.0f),10.0f,随机。范围(-5.0f,5.0f));
//实例化实例化的对象,其位置,是否旋转(不旋转)
实例化(ga,ve3,四元数. identity);
}
}
无效开始()
{
//延迟多次调用(调用方法,延迟几秒,每隔几秒再调用一次)
invoker repeating( Copy ,2,6);
}
//每帧调用一次Update
void Update () {
}
}
预制体Cube
给盒子碰撞器一个反弹材质。
* * * Unity对象碰撞时的反弹系数:即物理材质的反弹特性。
总之,给物体的碰撞体加上材质属性。
1.首先物体要有碰撞器(长方体碰撞器,球体碰撞器,多边形碰撞器等。).
2.创建物理材质
资产-创建-物理材料
看bouncy ity属性,范围是0到1,可以是小数,其他的暂时不动。
0:没有弹性,1:没有能量损失的反弹。
3.指定给碰撞器的材质属性。
系统自带这些物理材料。
弹力:弹性材料。冰:由冰制成。金属:金属材料。橡胶:由橡胶制成。木头:由木头制成。*
画
给一个Random Color脚本
使用UnityEngine
使用系统。收藏;
公共类RandomColor : MonoBehaviour
{
//使用它进行初始化
无效开始()
{
//获取组件材料。颜色
this . game object . getcomponentmesh renderer()material . color=randomcolor 1();//给游戏对象添加以下随机颜色。
}
/*浮点定时器;
//随时间改变颜色
//每帧调用一次Update
无效更新()
{
timer-=time . delta time;
如果(定时器=0)
{
这个。游戏对象。getcomponentmesh渲染器()材质。color=random color 1();
定时器=1;
}
}*/
公共颜色RandomColor1()
{
浮点r=随机。范围(0f,1f);
浮点g=随机。范围(0f,1f);
浮点b=随机。范围(0f,1f);
颜色颜色=新颜色(r,g,b);
返回颜色;
}
}
给一个Cube销毁脚本
使用系统。收藏;
使用系统。集合。泛型;
使用联合工程
公共类魔方小惠:monobehavior {
//使用它进行初始化
void Start () {
}
//每帧调用一次更新
void Update () {
如果(这个。转变。位置。y 0)//如果此物体的y坐标小于0,销毁此物体;
{
销毁(这个。游戏对象);
}
其他
{
Destroy(this.gameObject,100);//或者100秒后销毁
}
}
}
球体预制体Sphere
给个反弹材质,挂载随机颜色脚本,挂载小惠脚本
使用系统。收藏;
使用系统。集合。泛型;
使用联合工程
公共课小惠:单行为{
音频源音频;//销毁的音效
//使用它进行初始化
void Start () {
audio=get component audio source();//承接一下音效组件
}
void OnCollisionEnter(碰撞碰撞)//被碰撞的形参
{
if(coll .游戏对象。tag== Player )//如果碰到标签为玩家的物体,就销毁它
{
音频. play();//播放音效
destroy(coll .游戏对象);//销毁碰撞的物体
}
}
//每帧调用一次更新
void Update () {
Destroy(this.gameObject,10);//此物体十秒后自己消失
}
}
添加销毁音效,至此大功告成。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。