Unity|背景重復平移

為實現游戲背景重復使用,并跟隨攝像機移動,采用以下腳本。

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class OwnFloorControl : MonoBehaviour
{
    //攝像機
    private GameObject main_camera = null;
    //初始位置
    private Vector3 initial_position;
    //背景組件寬度(X軸方向)
    public const float WIDTH = 10.0f * 4.0f;
    //背景組件個數
    public const int MODEL_NUM = 3;

    // Use this for initialization
    void Start()
    {
        //組件應該附在背景上?
        //主角武士上?
        //cs是單個背景的component,背景根據主攝像頭移動,主攝像頭跟隨主角移動

        this.main_camera = GameObject.FindGameObjectWithTag("MainCamera");
        this.initial_position = this.transform.position;
    }

    // Update is called once per frame
    void Update()
    {
        //整體背景寬度 #寬度x個數
        float total_width = OwnFloorControl.WIDTH * OwnFloorControl.MODEL_NUM;
        //背景組件的位置
        Vector3 floor_position = this.transform.position;
        //攝像機的位置
        Vector3 camera_position = this.main_camera.transform.position;

        if (floor_position.x + total_width / 2.0f < camera_position.x)  
        {
            //畫布中部在相機位置左
            //向前移動
            floor_position.x += total_width;
            this.transform.position = floor_position;
        }
    }
}

效果

floor.png

component.png
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容