1. 飞机大战背景的处理方法
准备2个无缝背景贴图,位置设置好,连接在一起的。
每个背景都放同样的代码1个。
using UnityEngine;
using System.Collections;
public class move0 : MonoBehaviour {
void Start () {
}
void Update () {
transform.Translate(Vector3.back * Time.deltaTime * 5,Space.World); //背景图移动代码
if (transform.position.z <= -30) //设置一定移动范围
{
transform.position=new Vector3(transform.position.x, transform.position.y, 30); //超过这个范围自动复位
}
}
}
思路:想让背景一直给人向上移动的效果,先让他向下走,走过一个界限,向上移动一个身为就行了。
Z<=-30,可能不好理解,但是运行后看着,就懂了,就是移动了2个身位的距离(我设置Z=30),只有移动了2个Z的距离,其中一个的移动才从视线中消失,然后从上面重新开始。
2.子弹移动的方法
这个代码放在子弹身上
using UnityEngine;
using System.Collections;
public class zidanmove : MonoBehaviour {
public float bulletspeed; //设置变量:子弹移动速度
public GameController g; //设置g,跨脚本调用方法(调用谁就设置谁的类的g) void Start()
{
Destroy(gameObject, 6.0f); //设置子弹消失时间
g = GameObject.Find("GameObject").GetComponent<GameController>(); }
void Update () {
zdmove(); //update调用子弹移动代码
}
void zdmove() //定义子弹移动代码
{
transform.Translate(transform.forward*Time.deltaTime* bulletspeed,Space.World);//translate(方向,速度,时间)
}
private void OnTriggerEnter(Collider other) { //使用OnTriggerEnter方法,设置碰撞后使其他敌人消失
if (other.tag != "Player") { //前台设置好自己的子弹的标签为"Player"