為實現游戲背景重復使用,并跟隨攝像機移動,采用以下腳本。
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