¡¡¿·¤·¤¤¥¹¥¯¥ê¥×¥È¤òºîÀ®¤·¤Þ¤¹¡£¥¹¥¯¥ê¥×¥È¤ò³ÊǼ¤¹¤ë¤¿¤á¤Î¥Õ¥©¥ë¥À¤òÍÑ°Õ¤·¤Æ¡¢¤½¤ÎÃæ¤ËºîÀ®¤·¤Þ¤¹¡£
¡¡Project¤Î¾å¤Ç±¦¥¯¥ê¥Ã¥¯¤ò¤·¤Æ¥á¥Ë¥å¡¼¤ò³«¤¡¢Create => Folder ¤òÁªÂò¤·¤Æ¡¢¿·¤·¤¤¥Õ¥©¥ë¥À¤òºîÀ®¤·¤Þ¤¹¡£
̾Á°¤ò Scripts ¤ËÊѹ¹¤·¤Þ¤¹¡£
¡¡Scripts ¥Õ¥©¥ë¥À¤ÎÃæ¤Ç±¦¥¯¥ê¥Ã¥¯¤ò¤·¤Æ¥á¥Ë¥å¡¼¤ò³«¤¡¢Create => C# Script ¤òÁªÂò¤·¤Þ¤¹¡£
̾Á°¤ò CameraController ¤ËÊѹ¹¤·¤Æ¡¢¥À¥Ö¥ë¥¯¥ê¥Ã¥¯¤ò¹Ô¤¤¡¢¥¹¥¯¥ê¥×¥È¤òÊÔ½¸¤¹¤ë Visual Studio ¥¨¥Ç¥£¥¿¡¼¤ò³«¤¤Þ¤¹¡£
¥Õ¥©¥ë¥À¹½À®
¡¡Àë¸À¥Õ¥£¡¼¥ë¥É¤Ç¤Ï£²¤Ä¤ÎÊÑ¿ô¤ò¿·¤·¤¯Àë¸À¤·¤ÆÍÑ°Õ¤·¤Þ¤¹¡£
£±¤Ä¤Ï¥«¥á¥é¤¬Äɽ¾¤¹¤ëÂоݤòÀßÄꤹ¤ë¤¿¤á¤Î GameObject ·¿¤Î playerObj ÊÑ¿ô¤Ç¤¹¡£
¤³¤Á¤é¤ËÀßÄê¤ò¹Ô¤Ã¤¿¥²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤ò¥«¥á¥é¤¬Äɽ¾¤¹¤ëÀ©¸æ¤ò¹Ô¤Ã¤Æ¤¤¤Þ¤¹¡£
¡¡¤â¤¦£±¤Ä¤Ï Vector3 ·¿¤Î offset ÊÑ¿ô¤Ç¤¹¡£¥«¥á¥é¤ÈÄɽ¾¤¹¤ëÂоݤȤΰìÄê¤Îµ÷Î¥¤òÀßÄꤹ¤ë¤¿¤á¤ÎÃͤǤ¹¡£
¥«¥á¥é¤Ï¾ï¤Ë¤³¤ÎÃͤÎʬ¤À¤±Î¥¤ì¤ÆÂоݤòÄɽ¾¤¹¤ë¤è¤¦¤ËÀ©¸æ¤·¤Æ¤¤¤Þ¤¹¡£
¡¡¥á¥½¥Ã¥É¤Ï£²¤ÄÍÑ°Õ¤·¤Þ¤¹¡£ºîÀ®»þ¤Ëºî¤é¤ì¤Æ¤¤¤ë¥á¥½¥Ã¥É¤Î¤ß¤Ç½èÍý¤òÀ©¸æ¤Ç¤¤Þ¤¹¡£
¡¡Start ¥á¥½¥Ã¥É¤Ç¤Ï¡¢offest ÊÑ¿ô¤Ë¡¢Âоݤȥ«¥á¥é¤È¤Îµ÷Î¥¤ò·×»»¤·¤Æº¹Ê¬¤ò»»½Ð¤·¡¢¤½¤ÎÃͤòÂåÆþ¤·¤Æ¤ª¤¤Þ¤¹¡£
¤³¤ÎÃͤ¬
¥²¡¼¥à¥¹¥¿¡¼¥È»þ¤Î¥«¥á¥é¤ÈÂоݡʥڥ󥮥ó¡Ë¤ÎÎ¥¤ì¤Æ¤¤¤ëµ÷Î¥¤Ë¤Ê¤ê¤Þ¤¹¡£
¡¡Update ¥á¥½¥Ã¥É¤Ç¤Ï¡¢¤³¤Î offset ÊÑ¿ô¤ÎÃͤòÍøÍѤ·¤Æ¡¢¥«¥á¥é¤Î°ÌÃÖ¤ò
¾ï¤Ë¥Ú¥ó¥®¥ó¤«¤é°ìÄê¤Îµ÷Î¥¤À¤±Î¥¤ì¤Æ°ÜÆ°¤µ¤»¤ë¤³¤È¤Ë¤è¤ê¡¢
¥«¥á¥é¤¬¥Ú¥ó¥®¥ó¤òÄɽ¾¤¹¤ë¤è¤¦¤ËÀ©¸æ¤ò¹Ô¤¤¤Þ¤¹¡£
¡¡¤Þ¤¿Äɽ¾¤¹¤ë½èÍý¤ÎÁ°¤Ë¡¢if ʸ¤ÇÄɽ¾¤¹¤ëÂоݤ¬ÀßÄꤵ¤ì¤Æ¤¤¤ë¤«¤É¤¦¤«¤Î³Îǧ¤òÆþ¤ì¤Æ¤¤¤Þ¤¹¡£
¤Ê¤¼¤Ê¤é Update ¥á¥½¥Ã¥É¤Î½èÍý¤Ï¾ï¤ËÆ°¤¤¤Æ¤¤¤ë½èÍý¤Ç¤¢¤ë¤¿¤á¡¢Ëü¤¬°ì¡¢playerObj ÊÑ¿ô¤ÎÃͤ¬¶õ(Äɽ¾ÂоݤÎÅÐÏ¿¤¬¤Ê¤¤¾ì¹ç)¤Ë¤Ï
¥¨¥é¡¼¤Ë¤Ê¤Ã¤Æ¥²¡¼¥à¤¬Ää»ß¤·¤Æ¤·¤Þ¤¤¤Þ¤¹¡£¤½¤ì¤ò̤Á³¤ËËɤ°¤¿¤á¤Ë¡¢
Äɽ¾½èÍý¤ò¹Ô¤¦¤¿¤á¤ÎÁ°Äó¾ò·ï¤È¤·¤Æ¡¢Äɽ¾¤¹¤ëÂоݤ¬¤¤¤ë¤«¤É¤¦¤«¤Î¥Á¥§¥Ã¥¯¤ò¹Ô¤Ã¤Æ¤¤¤Þ¤¹¡£
¡¡½èÍý¤òµ½Ò¤¹¤ëºÝ¤Ë¤Ï¡¢
¤É¤ó¤ÊÊÑ¿ô¤¬¤¢¤Ã¤Æ¤É¤Î¤è¤¦¤ËÍøÍѤµ¤ì¤Æ¤¤¤ë¤Î¤«¤ò³Îǧ¤·¤Ê¤¬¤é½ñ¤¯¤è¤¦¤Ë¿´¤¬¤±¤Æ¤¯¤À¤µ¤¤¡£
CameraController.cs
¡¡<=¡¡¥¯¥ê¥Ã¥¯¤¹¤ë¤È³«¤¤Þ¤¹¡£
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class CameraController : MonoBehaviour
{
[SerializeField]
private GameObject playerObj; // ¥«¥á¥é¤¬Äɽ¾¤¹¤ëÂоݤΥ²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¡£º£²ó¤Ï¥Ú¥ó¥®¥ó
private Vector3 offset; // ¥«¥á¥é¤¬Äɽ¾¤¹¤ëÂоݤȤδ֤μè¤ë¡¢°ìÄê¤Îµ÷Î¥ÍѤÎÊäÀµÃÍ
void Start()
{
// ¥«¥á¥é¤ÈÄɽ¾ÂоݤΥ²¡¼¥à¥ª¥Ö¥¸¥§¥¯¥È¤È¤Îµ÷Î¥¤òÊäÀµÃͤȤ·¤Æ¼èÆÀ
offset = transform.position - playerObj.transform.position;
}
void Update()
{
// Äɽ¾Âоݤ¬¤¤¤ë¾ì¹ç
if (playerObj != null) {
// ¥«¥á¥é¤Î°ÌÃÖ¤òÄɽ¾ÂоݤΰÌÃÖ + ÊäÀµÃͤˤ¹¤ë
transform.position = playerObj.transform.position + offset;
}
}
}