Unity3d を使用していますが、Vector3.Lerp の問題があります。私の最初のコードでは Lerp コードは正常に動作していますが、PrevView メソッドの 2 番目の Lerp は正しく動作していません。カメラが揺れて元の位置に戻るだけです。どこで間違いを犯していますか?
ここにコード:
using UnityEngine;
using System.Collections;
public class MoveCamera : MonoBehaviour
{
Vector3 camPos;
Vector3 startPos; // for storing Camera's first position
Transform camTr;
float speed = 5f;**strong text**
void Start()
{
camTr = Camera.main.transform;
camPos = camTr.position;
startPos = camTr.position;
}
void Update()
{
if (Input.GetMouseButtonDown(0))
{
RaycastHit hit;
Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
if (Physics.Raycast(ray, out hit) && hit.collider.tag == "Buildings")
{
var buildings = GameObject.FindGameObjectsWithTag("Buildings");
foreach (GameObject go in buildings)
{
if (go == hit.collider.gameObject)
{
camPos.x = go.transform.position.x;
//camPos.y = go.transform.position.y + 30;
camPos.z = go.transform.position.z - 20;
}
else
{
go.SetActive(false);
}
}
}
}
camTr.position = Vector3.Lerp(camTr.position, camPos, Time.deltaTime * speed);
}
public void PrevView()
{
camTr.position = Vector2.MoveTowards(camTr.position, startPos, Time.deltaTime * speed);
}
}