unity射击游戏的倍镜
作者:互联网
首先创建一个场景,然后再弄几个目标
然后在新建一个Image把名字设置成Beijing,把瞄准镜的贴图放上去并且调整到合适的大小(注意贴图要把Texture Type设置成2D/UI)
在新建一个Image设置名字为dian当做是没开镜的辅助点,并且也调整到合适的大小,然后隐藏BeiJing
之后在摄像机上新建一个代码命名为Came
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Came : MonoBehaviour
{
public GameObject player;
public GameObject beijing;//定义一个倍镜
public GameObject dian;//定义一个辅助点
public Camera cam;//定义一个相机
void Update()
{
if (Input.GetMouseButtonDown(1))
{
beijing.SetActive(true);
dian.SetActive(false);
cam.fieldOfView = 20;
}
//如果按下鼠标右键,显示倍镜隐藏辅助点调整视野的数值
if (Input.GetMouseButtonUp(1))
{
beijing.SetActive(false);
dian.SetActive(true);
cam.fieldOfView = 60;
}
如果松开鼠标右键,隐藏倍镜显示辅助点调整视野的数值
//摄像机绕人物旋转
float mousex = Input.GetAxis("Mouse X");
float mousey = Input.GetAxis("Mouse Y");
if (System.Math.Abs(mousex) > System.Math.Abs(mousey))
{
if (mousex > 0)
{
transform.RotateAround(player.transform.position, Vector3.up, 2f);
}
else if (mousex < 0)
{
transform.RotateAround(player.transform.position, Vector3.up, -2f);
}
}
else if (System.Math.Abs(mousex) < System.Math.Abs(mousey))
{
if (mousey > 0 && transform.localEulerAngles.x > 1)
{
transform.localEulerAngles -= new Vector3(2f, 0, 0);
}
if (mousey < 0 && transform.localEulerAngles.x < 40)
{
transform.localEulerAngles += new Vector3(2f, 0, 0);
}
}
//鼠标锁定到中心
Cursor.lockState = CursorLockMode.Locked;
//滚轮调整视眼大小
if (Input.GetAxis("Mouse ScrollWheel") > 0 && transform.GetComponent<Camera>().fieldOfView < 80)
{
transform.GetComponent<Camera>().fieldOfView += 2;
}
if (Input.GetAxis("Mouse ScrollWheel") < 0 && transform.GetComponent<Camera>().fieldOfView > 30)
{
transform.GetComponent<Camera>().fieldOfView -= 2;
}
}
}
这个代码是可以旋转视角然后当你按下右键就能开镜放大画面,反之松开右键恢复原样。
回到Unity中选择相机,给对应的位置赋值
当一切就绪后你就会得到一个可以旋转视角的瞄准镜。具体的一些数值需要根据个人习惯调整。
标签:游戏,fieldOfView,System,transform,unity,mousey,射击,Input,public 来源: https://blog.csdn.net/AI200/article/details/115764076