相机跟随与屏幕自适应的实现
相机跟随
如何让相机跟着人物跑呢?这是个不太大但是需要解决的问题。
思路就是用LateUpade(保证在所有更新函数都调用完调用)实时监测相机的位置,让他一直和游戏主角保持一定的距离。
开始执行:
- 创建个脚本给相机绑上
然后我们开始写里面的代码。
-
写代码
using System.Collections; using System.Collections.Generic; using UnityEngine; public class MainCameraController : MonoBehaviour { //青蛙位置的实体,用于获取青蛙坐标 public Transform frog; //用于表示相机和青蛙之间的位置差 public float offsetY; private void LateUpdate() { //相机的位置 transform.position = new Vector3(transform.position.x, frog.transform.position.y + offsetY, transform.position.z); } }
-
把参数设置下
完成!
屏幕自适应
思路:先调节好我们需要的大致基础大小,之后再乘长宽比。
上菜(代码)!
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class MainCameraController : MonoBehaviour
{
//基础大小
public float zoomBase;
//长宽比
private float ratio;
private void Start() {
//求出长宽比
ratio = (float)Screen.height / (float)Screen.width;
Camera.main.orthographicSize = zoomBase * ratio * 0.5f;
}
}
这段代码绑在相机上,我们调节下参数:
总代码如下:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class MainCameraController : MonoBehaviour
{
//青蛙位置的实体,用于获取青蛙坐标
public Transform frog;
//用于表示相机和青蛙之间的位置差
public float offsetY;
//基础大小
public float zoomBase;
//长宽比
private float ratio;
private void Start() {
//求出长宽比
ratio = (float)Screen.height / (float)Screen.width;
Camera.main.orthographicSize = zoomBase * ratio * 0.5f;
}
private void LateUpdate()
{
//相机的位置
transform.position = new Vector3(transform.position.x, frog.transform.position.y + offsetY, transform.position.z);
}
}