按照教程走,但是同样的代码,我的跑道无法出现
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class ObjectPool : MonoSingleton<ObjectPool>
{
//资源目录
public string ResourceDir="" ;
Dictionary<string, SubPool> m_pools = new Dictionary<string, SubPool>();
//取物体
public GameObject Spawn(string name,Transform trans)
{
SubPool pool = null;
if(!m_pools.ContainsKey(name))
{
RegieterNew(name,trans);
}
pool = m_pools[name];
return pool.Spawn();
}
//回收物体
public void Unspawn(GameObject go)
{
SubPool pool = null;
foreach(var p in m_pools.Values)
{
if (p.Contain(go))
{
pool = p;
break;
}
}
pool.UnSpawn(go);
}
//回收所有
public void UnspawnAll()
{
foreach(var p in m_pools.Values)
{
p.UnspawnAll();
}
}
//新建一个池子
void RegieterNew(string names,Transform trans)
{
//生成目录
string path = ResourceDir + "/" + names;
//生成预制体
GameObject go = Resources.Load<GameObject>(path);
//新建池子
SubPool pool = new SubPool(trans,go);
m_pools.Add(pool.Name, pool);
}
}
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class RoadChange : MonoBehaviour
{
GameObject roadNow;
GameObject roadNext;
GameObject parent;
private void Start ()
{
if(parent==null)
{
parent = new GameObject();
parent.transform.position = Vector3.zero;
parent.name = "Road";
}
roadNow = Game.Instrance.objectPool.Spawn("Pattern_1", parent.transform);
roadNext = Game.Instrance.objectPool.Spawn("Pattern_2", parent.transform);
roadNext.transform.position += new Vector3(0, 0, 160);
}
private void OnTriggerEnter(Collider other)
{
if (other.gameObject.tag == Tag.road)
{
//回收
Game.Instrance.objectPool.Unspawn(other.gameObject);
//创建新的跑道
SpawnNewRoad();
}
}
void SpawnNewRoad()
{
int i = Random.Range(1, 5);
//生成新的游戏对象
roadNow = roadNext;
roadNext = Game.Instrance.objectPool.Spawn("Pattern_"+i.ToString(), parent.transform);
roadNext.transform.position = roadNow.transform .position+ new Vector3(0,0,160);
}
}
在Unity中已经选中了路径,但是无法出现