栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 游戏开发 > 其他

【Unity小球酷跑编写记录】

其他 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

【Unity小球酷跑编写记录】

                          ***小球酷跑编写记录***

目录
  • 一、游戏场景
  • 二、小球设置
  • 三、相机跟随及代码添加
  • 四、设置wall跟随
  • 五、障碍物设置
  • 六、游戏效果

一、游戏场景

首先使用3dObject来创建3个长方形(cube),将其中两个的x长度设置成一样的20,在将剩下的x、y、z长度均为1的长方体放在这两段的正中间,上下对齐,在同一水平。并将名称改为wall,放在同一分组中。

    摆放位置如图所示:

设置好位置后,在调整相机的位置,使得我们的视角能够看到这个整体

在将以上步骤设置完成后,我们可以将整体的背景略作改变,通过选中相机来进行背景颜色的修改。(我改成了蓝色)

二、小球设置

游戏的主角就是我们控制的小球,那么我们在需要对小球进行设置。首先将其改名为player,在添加上刚体属性,后面在添加上脚本代码,即可让我们来通过控制小球进行游戏。

三、相机跟随及代码添加

小球的属性已经设置完毕,我们需要操控小球来进行游戏,那么我们就需要为其添加编写的脚本代码,添加到小球上,使得我们可以通过键盘来操控小球。

代码如下:
在将代码编写完成后,我们将代码拖动到小球上,为其添加脚本

如图所示:

将小球的代码编写完成后,我们还需要添加相机的代码,使得相机能够跟随小球的视角

代码如下:

再将代码拖动到相机后,我们还需要选中相机要跟随的目标,将小球player添加进去,这样相机就能跟随小球。

四、设置wall跟随

将创建的上下的两个边框调整到一个分组,为其添加脚本代码,使得能够跟随小球进行移动

代码如下:

 通过脚本代码来控制wall跟随小球和相机同步行进

再将player小球主题添加进去,使得对象成为小球

五、障碍物设置

在main中创建障碍物cube将其命名为barrier,在使用C#创建barrier的脚本代码,命名为BarrierControl。通过prefab创建出障碍物的预制体,可以随时进行调用。还可以将整体的颜色进行修改。

如图所示:

创建出障碍物的预制体和脚本代码BarrierControl

BarrierControl脚本如下:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class BarrierControl : MonoBehaviour {
    public GameObject player;
    public GameObject BarrierPre;
    public GameObject CurrentBarrier;
    public int BarrierInterval = 10;
	
	void Start () {
		
	}
	
	void Update () {
        AutCreatBarrier();

    }
    public void AutCreatBarrier()
    {
        if(player.transform.position.x>CurrentBarrier.transform.position.x)
        {
            //生成新的障碍物
            float targetX = CurrentBarrier.transform.position.x+BarrierInterval;
            float targetY = RandomBarrierPositionY();
            Vector3 targetPos = new Vector3(targetX,targetY,0);
            GameObject g = Instantiate(BarrierPre,targetPos,Quaternion.identity);
            g.transform.localScale = new Vector3(g.transform.localScale.x, RandomBarrierSizeY((int)g.transform.position.y),g.transform.localScale.z);
            CurrentBarrier = g;
        }
    }
    public float RandomBarrierSizeY(int y)
    {
        int yAbs = Mathf.Abs(y);
        if(yAbs==0)
        {
            return 6;
        }
        else
        {
            return (3 - yAbs) * 2 - 1;
        }

    }
    public float RandomBarrierPositionY()
    {
        int r = Random.Range(-3,3);
        return r;
    }
}
六、游戏效果




转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/901323.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号