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

Unity 3D酷跑游戏场景循环

////////////////2015/07/05////////////////////////////by xbw////////////////////

///////////////环境Unity4.6.1//////

经过一上午的学习与实验,终于实现了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自带脚本,,,添加过程:<img src="?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="" /><img src="?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="" />导入即可;;;我们会看到多出来了代码文件夹;<img src="?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="" />将SmoothFollow托给主摄像机,Main Camera;;;此时运行就可以看到效果了,可以用方向键控制Cube移动,我们要解决的问题是场景循环,怎样实现两个Plane平面生成无限循环的场景,两个Plane一前一后,走过前边的Plane把他移到后一个Plane的后边;并将Plane1删除;走过Plane2时,Plane2消失,移动到Plane3的后边,一次交替循环,实现场景的无线路;;;;为了实现更好的效果,先给Cube添加重力效果,还有一些相关属性,,如下;

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

增加了BoxCollider属性,,,

接下来新增两个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);}}}}

BoxCollider是触发器,,,,,,

仿佛松树就是一位威风的将军,守护着国家的国民。

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

相关文章:

你感兴趣的文章:

标签云: