unity 跑酷游戏开发笔记(二)

来源:互联网 发布:网络新词汇 编辑:程序博客网 时间:2024/05/22 01:40

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;

       

    }

     /// <summary>

    /// 虚方法。为了在其他方法中可以重写。

    /// </summary>

    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后。就会自动的将道路移动到指定位置了。好了今天就写这些吧。明天看看做障碍物和道具获取。

0 0
原创粉丝点击