太空大战背景移动的几种方式
Posted huang--wei
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了太空大战背景移动的几种方式相关的知识,希望对你有一定的参考价值。
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); } } } }
以上是关于太空大战背景移动的几种方式的主要内容,如果未能解决你的问题,请参考以下文章
一张图,理顺 Spring Boot应用在启动阶段执行代码的几种方式
一张图,理顺 Spring Boot应用在启动阶段执行代码的几种方式
一张图,理顺 Spring Boot应用在启动阶段执行代码的几种方式