Unity3d 跑酷游戏(急速变色龙)

赛道(障碍物)生成

我们在做跑酷游戏的时候要明白这几点:
赛道的生成以及消失
障碍物的生成以及消失

我们先来讲赛道的生成,什么时候生成?又什么时候消失?

解决方法是我们要用到触发器,当角色到达触发点的时候,在角色的前方自动生成赛道,这里我们要用到对象池,当我们赛道到角色的距离大于多少的时候我们就回收赛道,优化性能。

1、触发点就是我们在赛道(Trackshort)上新加一个(Trackpoint)盒型碰撞器并且勾选触发器,并且新建一个标签给它,是为了和赛道上的盒型碰撞器区分开,赛道上的盒型碰撞器不勾选触发器。
在这里插入图片描述
2、下面创建一个Trackcreator类来生成赛道,把脚本挂在gamemanger上

首先我们要定义几个

// An highlighted block
    public List<GameObject> lists = new List<GameObject>();//对象池,对象池就是一个集合
    public GameObject[] tracks;//放有赛道的数组
    private static Trackcreator instance;//单例类
    public static Trackcreator Instance {
    get {
    return instance; } }//单例类就是全局类

在Start里面完成单例类

// An highlighted block
    void Start()
    {
   
        if (instance != null)
        {
   
            Destroy(this.gameObject);
            return;
        }
        else
        {
   
            instance = this;
        }
    }

我们新写一个赛道的函数Creator()

// An highlighted block
    public GameObject Creator()//函数是有返回值的,这里返回的是对象
    {
   
        if (lists.Count > 0)//判断对象池里面有没有对象
        {
   
            var lastindex = lists.Count - 1;//找到集合里面的最后一个的下标
            var lastone = lists[lastindex];//取出集合里最后一个对象
            lists.Remove(lastone);//移除该对象
            lastone.SetActive(true);//对象激活
            return lastone;//返回对象
        }
        else
        {
   
            var newindex 
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值