想法是将相机移动到画布前面的某个点。我已经将相机定位在第一个画布上,当相机移动到另一个画布时我需要保持这个距离(画布相同,它们只有不同的位置和旋转角度)。
所以问题是如何保持与画布中心相同的相机距离?
答案 0 :(得分:1)
这取决于画布的方向。如果你将它们定位为正方形
| __ |你可以简单地将凸轮放在正确的中间并转换90°
如果您需要不同的距离,请将它们进一步分开,并按照这样的方式进行操作
/ \ | ○|在中间的圆圈上,您可以在外边缘移动相机。画布方向需要与圆的最近切线平行。你可以通过在中间设置一个假想的(或空的游戏对象)并保持与它的距离来使它在曲线上移动。
答案 1 :(得分:1)
将此脚本放在gameObject(如相机)上
指定相机,画布和距离变量。
希望这会有所帮助:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
[ExecuteInEditMode]
public class CanvasPositioner : MonoBehaviour {
public Camera cam;
public Canvas[] canvases;
public float distance = 15;
private float xPos;
private float yPos;
private float zPos;
private float angle;
void PositionCanvases(){
for(int i = 0; i < canvases.Length; i++){
angle = canvases[i].transform.eulerAngles.y;
xPos = cam.transform.position.x + distance * Mathf.Sin(Mathf.Deg2Rad* angle);
yPos = cam.transform.position.y;
zPos = cam.transform.position.z + distance * Mathf.Cos(Mathf.Deg2Rad * angle);
canvases[i].transform.position = new Vector3(xPos,yPos,zPos);
}
}
void LateUpdate () {
PositionCanvases();
}
}