2014.9.7
今天要做道路无限循环,这样就可以实现基本的跑酷了。
我这里创建了一个cube 把这个cube拉长。这样就可以成为一个临时跑道的。
在cube里面有两个子物体。Location这个是一个空物体。这个物体是要放到cube的一边的最前面。目的是可以在这个物体的坐标上生成下一段跑道,后面的judgeCreation。这个我是创建了一个cube之后把这个物体上的boxcollider,组件的大小增大到站满一个跑道,
如图:
赠大到这个样子。
这个物体的inspector
路的模型基本就这个样子了。
对了,。我在judgeCreation这个物体的tag里设置了bg1这个标签
好的。现在来看代码。。
我创建的名字是JudgeTera
#region 属性
private string bc;//路的标签
#endregion
#region 对象
public GameObject bi;
private Transform m_transform;//有这个脚本的物体
private Transform m_zitransform;//这个物体的夫物体的一个子类
#endregion
protected voidSetAttribute(string name) {
bc = name;
}
///
/// 虚方法。为了在其他方法中可以重写。
///
protected virtual void m_Int() {
}
// Use this for initialization
void Start () {
bi = new GameObject();
m_transform = this.transform;
m_zitransform =m_transform.parent.Find("location");
}
// Update iscalled once per frame
void Update () {
m_Int();
}
void OnTriggerEnter(Collider co) {
if (co.CompareTag("Player")){
// Debug.Log(bc);
bi =GameObject.FindGameObjectWithTag(bc);
bi.transform.parent.position = newVector3(0, 0, m_zitransform.position.z+22f);
}
}
这样就可以实现把路移动到指定位置了。但是这样只是能移动一个。我这里提供了一个虚方法。之后在写一些派生类。在派生类里继承这个脚本。来重写这个方法。
public classJudCube_01 : JudgeTera {
protected override void m_Int()
{
SetAttribute("bg2");
}
}
这个就是派生类。这里重写了父类的虚方法。把这个类添加给judgeCreation 这个里。
之后我创建了3个cube 的道路。。里面都有judgeCreation这个物体。给这个物体的tag添加了3个标签。分别是bg1,bg2,bg3, 这三个。这样当角色碰到judgeCreation后。就会自动的将道路移动到指定位置了。好了今天就写这些吧。明天看看做障碍物和道具获取。