萌熊跑酷项目-23~25-跑道轮换

萌熊跑酷项目-跑道轮换

roadNow   roadNext   两个变量指向两个跑道进行轮换

白色为碰撞体(roadNow的) 当角色碰撞到,进行跑道轮换,轮换代码

RoadChange

1、跑道父物体

2、初始化两个跑道。通过对象池生成

3、碰撞检测,进行跑道轮换(回收跑道(roadNow),生成新跑道(完成roadNoew与roadNext赋值转换))

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class RoadChange : MonoBehaviour {

    GameObject roadNow;
    GameObject roadNext;
    GameObject parent;

	void Start () {
        //跑道父物体
        if (parent==null)
        {
            parent = new GameObject();
            parent.transform.position = Vector3.zero;
            parent.name = "Road";
        }
        //先生成两个跑道
        roadNow= Game.Instance.objectPool.Spawn("Pattern_1", parent.transform);
        roadNext = Game.Instance.objectPool.Spawn("Pattern_2", parent.transform);
        roadNext.transform.position += new Vector3(0,0,160);
    }
	
	void Update () {
		
	}

    private void OnTriggerEnter(Collider other)
    {
        if (other.gameObject.tag==Tags.road)
        {
            //回收
            Game.Instance.objectPool.UnSpawn(other.gameObject);
            //创建新跑道
            SpawnNewRoad();
        }
    }
    //生成新的跑道
    void SpawnNewRoad() {
        int i = Random.Range(1,5);
        //生成新的游戏对象
        roadNow = roadNext;
        roadNext = Game.Instance.objectPool.Spawn("Pattern_"+i.ToString(),parent.transform);
        roadNext.transform.position = roadNow.transform.position + new Vector3(0,0,160);
    }
}

PlayerMove 

角色向前跑

using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class PlayerMove : View
{
    public float speed = 20;
    CharacterController m_cc;

    public override string Name{get{return Consts.V_PlayerMove;}}

    private void Awake()
    {
        m_cc = GetComponent<CharacterController>();
    }
    private void Update()
    {
        m_cc.Move(transform.forward*speed*Time.deltaTime);
    }

    public override void HandleEvent(string name, object data)
    {    
    }

}

 

 

 

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值