Unity 3D酷跑类游戏场景循环

在场景中建两个Plane作为地面,分别命名为Plane1,Plane2;

Position 分别设为0,0,50;0,0,150;

Scale分别设为1,1,10;1,1,10;

接着建立一个Cube,位置设为0,0.5,20;

Cube即为游戏人物,

Cube的方向控制代码;;;Csharp代码如下;

 using UnityEngine;
using System.Collections;
public class playControl : MonoBehaviour
{
   public float movespeed =10f;
   void Update()
{
 
   if (Input.GetKey(KeyCode.UpArrow))
             transform.Translate(Vector3.forward * movespeed*Time.deltaTime);
 
        
   if (Input.GetKey(KeyCode.DownArrow))
           transform.Translate(Vector3.back * movespeed * Time.deltaTime);
 
     
   if (Input.GetKey(KeyCode.LeftArrow))
           transform.Translate(Vector3.left * movespeed * Time.deltaTime);
 
     
   if (Input.GetKey(KeyCode.RightArrow))
          transform.Translate(Vector3.right * movespeed * Time.deltaTime);
   
 }
 
}
创建一个C#script。。。
用将此代码写入;把它托给Cube;
为主摄像机添加Unity自带脚本,,,
添加过程:

其中我们为Cube添加了Tag————Player。。。

增加了Box Collider属性,,,

接下来新增两个Tag 分别命名为Plane1,Plane2;

在这将其命名;;;;;;

分别把tag-Plane1,tag-Plane2为Plane1,Plane2的子类;;;;

设置一下

tag-Plane1,tag-Plane2;

发现代码了吧;;;;

这个就是用来控制两个Plane交替循环的;;;;;

代码如下;;;;

using UnityEngine;
 
using System.Collections;
 
 
public class bgtrigger : MonoBehaviour
 
{
    
    GameObject bg;
 
    
    void Start()
   {
bg = new GameObject();
}
 
    
    void OnTriggerEnter(Collider e)
   {
       
if (e.CompareTag("Player"))
 
 
{
 
    if (gameObject.transform.parent.CompareTag("Plane2"))//父类
          
          {
               
             bg = GameObject.FindGameObjectWithTag("Plane2");
               
              bg.transform.position = new Vector3(0, 0, bg.transform.position.z + 200);
           
         }
       
         else
            
        {
            
                bg = GameObject.FindGameObjectWithTag("Plane1");
         
                 bg.transform.position = new Vector3(0, 0, bg.transform.position.z + 200);        
         }
    


}
Box Collider 是触发器,,,,,,

当Cube走到这个位置时,即碰触到触发器,这时候相应的代码就会起作用;;;;;

你可能感兴趣的:(unity3d)