カメラが複数のオブジェクトを画面内に映すように設定
![C0245d4a f578 4ef9 a6ac 1987ae5355fe](https://codegenius.org/uploads/slide/image/4346/c0245d4a-f578-4ef9-a6ac-1987ae5355fe.jpeg)
![728f541d bf38 48df af43 33b0474f5af7](https://codegenius.org/uploads/slide/image/4347/728f541d-bf38-48df-af43-33b0474f5af7.jpeg)
2点間の距離に応じて画面を拡大縮小する
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class CenterPosition : MonoBehaviour
{
public GameObject[] target;
public Camera cam;
void Update()
{
// 2台のタンクの位置から中間点を算出する。
Vector3 centerP = (target[0].transform.position + target[1].transform.position) * 0.5f;
// 上記で算出した中間点に、CenterPositionオブジェクトを移動させる。
transform.position = centerP;
// 2点間(2台のタンク)の距離
float dis = Vector3.Distance(target[0].transform.position, target[1].transform.position);
// カメラの描画サイズを2点間(2台のタンク)の距離に連動させる。
// 2台のタンクが離れた場合には、描画サイズを大きくする。
cam.orthographicSize = dis;
// カメラの描画サイズを一定の範囲に制限する。
if (cam.orthographicSize < 10)
{
cam.orthographicSize = 10;
}
if (cam.orthographicSize > 20)
{
cam.orthographicSize = 20;
}
}
}
![10d0bfd7 7928 41fb bac8 326880cbd863](https://codegenius.org/uploads/slide/image/4348/10d0bfd7-7928-41fb-bac8-326880cbd863.jpeg)
![9cb4e051 51a9 4e92 bae6 8dc69c4ead36](https://codegenius.org/uploads/slide/image/4349/9cb4e051-51a9-4e92-bae6-8dc69c4ead36.jpeg)
![Cbbb6ef6 9a68 4ab7 bcb0 bf90d6c0c233](https://codegenius.org/uploads/slide/image/4350/cbbb6ef6-9a68-4ab7-bcb0-bf90d6c0c233.jpeg)
![916fbb64 f275 4164 9d85 81c51b3b50b6](https://codegenius.org/uploads/slide/image/4351/916fbb64-f275-4164-9d85-81c51b3b50b6.jpeg)
![Eba53f69 3a04 4893 9f98 186a4e28004b](https://codegenius.org/uploads/slide/image/4352/eba53f69-3a04-4893-9f98-186a4e28004b.jpeg)
追跡カメラ
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class ChaseCamera : MonoBehaviour
{
public GameObject target;
private Vector3 offset;
void Start()
{
offset = transform.position - target.transform.position;
}
void Update()
{
if(target != null)
{
transform.position = target.transform.position + offset;
}
}
}
![Ec079d6e ba74 4652 9b4e a3150a0e718f](https://codegenius.org/uploads/slide/image/4353/ec079d6e-ba74-4652-9b4e-a3150a0e718f.jpeg)
![6d7f2da6 6260 47e3 8e71 ad7e28660e0a](https://codegenius.org/uploads/slide/image/4354/6d7f2da6-6260-47e3-8e71-ad7e28660e0a.jpeg)
![C0245d4a f578 4ef9 a6ac 1987ae5355fe](https://codegenius.org/uploads/slide/image/4346/c0245d4a-f578-4ef9-a6ac-1987ae5355fe.jpeg)
![728f541d bf38 48df af43 33b0474f5af7](https://codegenius.org/uploads/slide/image/4347/728f541d-bf38-48df-af43-33b0474f5af7.jpeg)
2点間の距離に応じて画面を拡大縮小する
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class CenterPosition : MonoBehaviour
{
public GameObject[] target;
public Camera cam;
void Update()
{
// 2台のタンクの位置から中間点を算出する。
Vector3 centerP = (target[0].transform.position + target[1].transform.position) * 0.5f;
// 上記で算出した中間点に、CenterPositionオブジェクトを移動させる。
transform.position = centerP;
// 2点間(2台のタンク)の距離
float dis = Vector3.Distance(target[0].transform.position, target[1].transform.position);
// カメラの描画サイズを2点間(2台のタンク)の距離に連動させる。
// 2台のタンクが離れた場合には、描画サイズを大きくする。
cam.orthographicSize = dis;
// カメラの描画サイズを一定の範囲に制限する。
if (cam.orthographicSize < 10)
{
cam.orthographicSize = 10;
}
if (cam.orthographicSize > 20)
{
cam.orthographicSize = 20;
}
}
}
![10d0bfd7 7928 41fb bac8 326880cbd863](https://codegenius.org/uploads/slide/image/4348/10d0bfd7-7928-41fb-bac8-326880cbd863.jpeg)
![9cb4e051 51a9 4e92 bae6 8dc69c4ead36](https://codegenius.org/uploads/slide/image/4349/9cb4e051-51a9-4e92-bae6-8dc69c4ead36.jpeg)
![Cbbb6ef6 9a68 4ab7 bcb0 bf90d6c0c233](https://codegenius.org/uploads/slide/image/4350/cbbb6ef6-9a68-4ab7-bcb0-bf90d6c0c233.jpeg)
![916fbb64 f275 4164 9d85 81c51b3b50b6](https://codegenius.org/uploads/slide/image/4351/916fbb64-f275-4164-9d85-81c51b3b50b6.jpeg)
![Eba53f69 3a04 4893 9f98 186a4e28004b](https://codegenius.org/uploads/slide/image/4352/eba53f69-3a04-4893-9f98-186a4e28004b.jpeg)
追跡カメラ
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class ChaseCamera : MonoBehaviour
{
public GameObject target;
private Vector3 offset;
void Start()
{
offset = transform.position - target.transform.position;
}
void Update()
{
if(target != null)
{
transform.position = target.transform.position + offset;
}
}
}
![Ec079d6e ba74 4652 9b4e a3150a0e718f](https://codegenius.org/uploads/slide/image/4353/ec079d6e-ba74-4652-9b4e-a3150a0e718f.jpeg)
![6d7f2da6 6260 47e3 8e71 ad7e28660e0a](https://codegenius.org/uploads/slide/image/4354/6d7f2da6-6260-47e3-8e71-ad7e28660e0a.jpeg)
カメラが複数のオブジェクトを画面内に映すように設定