太空大戰背景移動的幾種方式
阿新 • • 發佈:2018-09-08
nbsp ria print for ans time set collect mes
1.
//兩張背景分開移動 using System.Collections; using System.Collections.Generic; using UnityEngine; public class Background : MonoBehaviour { public float speed =1;//背景移動速度 public float time1 = 0; public float startime=5; public GameObject bj1; public GameObject bj2; Vector3 vec1; Vector3 vec2;// Use this for initialization void Start() { vec1 = bj1.transform.position; vec2 = bj2.transform.position; // Update is called once per frame } void Update() { time1 += Time.deltaTime; bj1.transform.Translate(new Vector3(0, 0, -0.02f* speed),Space.World); bj2.transform.Translate(new Vector3(0, 0, -0.02f * speed),Space.World); if (bj1.transform.position.z < -20) { bj1.transform.position = vec2; } if (bj2.transform.position.z < -20) { bj2.transform.position= vec2; } } }
2.
兩張背景圖一起移動 using System.Collections; using System.Collections.Generic; using UnityEngine; public class back02 : MonoBehaviour { public float speed = 2; // Use this for initialization void Start () { } // Update is called once per frame void Update () { transform.Translate(new Vector3(0, 0, -0.02f*speed), Space.World); if (transform.position.z < 0) { transform.position = new Vector3(0, -5, 20); } } }
3.材質移動
public float speed = 0.25f; // Use this for initialization void Start () { // pos = transform.position; } // Update is called once per frame void Update () { float move = Time.time * speed; GetComponent<MeshRenderer>().material.mainTextureOffset = new Vector2(0,move); }
4.用MoveTowards
using UnityEngine; using System.Collections; public class GameGround : MonoBehaviour { public GameObject[] map; public Vector3 endsence ; public Vector3 startmountion; // Use this for initialization void Start () { } // Update is called once per frame void Update () { movescene (map, endsence, 0.5f); } void movescene(GameObject[] scene,Vector3 endsence,float speed) { foreach(GameObject mysence in scene){ if(mysence!=null) { float dY=mysence.transform.localPosition.y-endsence.y; if(dY<0){ print (1); mysence.transform.localPosition=startmountion+new Vector3(dY+0.05f,0,0); } mysence.transform.localPosition= Vector3.MoveTowards (mysence.transform.localPosition, new Vector3(0,-200f,0), Time.deltaTime *speed); } } } }
太空大戰背景移動的幾種方式