編集:3Dではなく、2Dの実装には答えが必要です。だから私のプロジェクトでは「前に尋ねられた質問」はうまくいかない。Unity 2Dマウスズームしますが、マウスポイントの位置をズームインします
編集:以下の受け入れられた回答を使用してください、これは私の作業スクリプトです。 Vector3の0.1Fの部分がうまくいくのは難しいので、ややこしいですが、うまくいきます。しかし、Time.deltaTimeはうまくいかなかった。
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class CameraZoom : MonoBehaviour
{
private float zoom = 10;
Vector3 newPosition;
void Update()
{
if (Input.GetAxis("Mouse ScrollWheel") > 0 && zoom > 9)
{
zoom -= 1;
Camera.main.orthographicSize = zoom;
newPosition = Camera.main.ScreenToWorldPoint(Input.mousePosition);
transform.position = Vector3.Lerp(transform.position, newPosition, 0.1F);
}
if (Input.GetAxis("Mouse ScrollWheel") < 0 && zoom < 101)
{
zoom += 1;
Camera.main.orthographicSize = zoom;
}
}
}
元の質問:私はとズームアウトのための基本的なスクリプトを持っていますが、私はマウスホイールでピンを見るにはズームインしたときに、私はマウスカーソルの位置にズームインします。 Paradox Games(EU4など)では、画面の左にある国にマウスを置いてズームインしてズームインすると、ズームインしてズームインして中央になります。
これまでの私の基本的なスクリプトは、私のカメラに取り付けられています。カメラは、ただ直線でズームイン/ズームアウトします。
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class CameraZoom : MonoBehaviour {
public float zoom = 10F;
void Update() {
if (Input.GetAxis("Mouse ScrollWheel") > 0 && zoom > 9)
{
zoom -= 1;
}
if (Input.GetAxis("Mouse ScrollWheel") < 0 && zoom < 101)
{
zoom += 1;
}
GetComponent<Camera>().orthographicSize = zoom;
}
}
「前に質問しました」という回答の問題は、それが3D実装用で、2Dが必要だということです。カメラの位置を変えることで動作しますが、私は2Dのために「正射影」で何かをする必要があると思います。 – Farflame
重複としてマークしませんでしたが、重複もうまく機能するはずです – Programmer
それはありません。実際、複写はカメラ変換を動かすので何もしません。私は2Dで何もしないと信じています。 2D版では、カメラの正投影サイズを変更する必要があります。私の解決策は大丈夫ですが、完璧ではありません。人々が同じ解決策を探すためにここに来ると仮定して、複製がまったく機能しないので正解とマークしてはいけません。 – Farflame