• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
白染
博客园    首页    新随笔    联系   管理    订阅  订阅

太空大战背景移动的几种方式

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);
            }
        }

    }

}

 

莫说我穷的叮当响,大袖揽清风。 莫讥我困时无处眠,天地做床被。 莫笑我渴时无美酒,江湖来做壶。
posted @ 2018-09-08 16:03  白染  阅读(149)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3