笔记|Unity 3D 背景图片的循环滚动
程序员文章站
2022-03-02 09:29:00
...
用Canvas创建了两张Image拼接作为背景。
脚本挂在摄像机上
把两张image拖到MOVE(Script)设置为bg1、bg2
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class MOVE : MonoBehaviour {
public Transform bg1;
public Transform bg2;
//也可以用GameObject ; 具体区别 自己查
float bg1PosX;//bg1初始位置X轴的值
float bg2PosX;//bg2初始位置X轴的值
//在Start方法之前的函数、
//即使脚本没有被**也会执行且只运行一次
// Use this for initialization
//在整个脚本生命周期中只被调用一次
//它是在第一次执行Update函数之前调用
//用于做数值的初始化设置
void Start () {
//bg2 = transform.Find("Img_BG2");
//其实可以用代码调用图片的。
bg1PosX = bg1.transform.position.x;
bg2PosX = bg2.transform.position.x;
}
// Update is called once per frame
//每帧调用一次,每一次循环间隔在0.01-0.025秒之间(电脑越好循环的间隔越短)
//循环的基础函数(在初始化函数结束后开始循环函数)
void Update () {
bg1.Translate(Vector3.left * Time.deltaTime * Screen.width);
bg2.Translate(Vector3.left * Time.deltaTime * Screen.width);
if (bg2.transform.position.x - bg1PosX < 0)
{
bg1.position += new Vector3(bg2PosX -bg1PosX,0,0);
bg2.position += new Vector3(bg2PosX - bg1PosX, 0, 0);
}
}
}
以2D对象Sprite 创建背景图片
把脚本拖到两个Sprite 对象上即可。
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class bird : MonoBehaviour {
float speed = 0.01f;
// Use this for initialization
void Start () {
print(transform.position);
}
// Update is called once per frame
void Update () {
transform.Translate(Vector3.left * Time.deltaTime*Screen.width);
if (transform.position.x <-6.33f) {
transform.position = new Vector3(6.27f, transform.position.y, transform.position.z);
}
}
}
推荐阅读
-
creo4.0同一曲面怎么添加两种不同的颜色?
-
快播还能继续使用吗?快播点播技术关闭后的解决办法
-
Unity3D 冲锋效果、角色拖尾效果
-
AE怎么排列图层? ae由上往下排列的教程
-
暴风影音盒子打不开的解决方法
-
重庆分数线最低的本科大学名单汇总(2021年参考)
-
使用Spring Security控制会话的方法
-
Spring Boot报错:No session repository could be auto-configured, check your configuration的解决方法
-
2021年陕西450分理科能上什么大学?陕西450分的二本学校名单
-
2021年河北450分理科能上什么大学?附河北450分的公办二本名单