unity实现简单fps游戏功能
unity实现简单fps游戏鼠标功能1.unity实现瞄准镜功能实现原理按下鼠标右键镜头拉近,再次按下镜头拉远(设置Camrea的FOV属性)逐渐拉近(例如:60->20逐渐拉近)设置缩放等级使每次点击的缩放效果不同public class ScaleCamera : MonoBehaviour{private bool isFar=true;private Camera cam;priva
·
unity实现简单fps游戏鼠标功能
1.unity实现瞄准镜功能
实现原理
- 按下鼠标右键镜头拉近,再次按下镜头拉远(设置Camrea的FOV属性)
- 逐渐拉近(例如:60->20逐渐拉近)
- 设置缩放等级使每次点击的缩放效果不同
public class ScaleCamera : MonoBehaviour
{
private bool isFar=true;
private Camera cam;
private int[] zoomLength = { 60,40,20 };//设置缩放等级
private int length = 0;
// Start is called before the first frame update
void Start()
{
cam = GetComponent<Camera>();//获取Camera组件
}
// Update is called once per frame
void Update()
{
ScaleCameraf();
}
public void ScaleCameraf(){
//获取鼠标右键
if (Input.GetMouseButtonDown(1))
{
length = (length + 1) % zoomLength.Length;//利用取余计算使缩放等级一直在zoomLength这个数组中循环
}
cam.fieldOfView = Mathf.Lerp(cam.fieldOfView, zoomLength[length], 0.1f);//缩放功能实现代码,利用Mathf.Lerp()函数实现平滑缩放效果
if (Mathf.Abs(cam.fieldOfView - zoomLength[length]) < 0.1f)
{
cam.fieldOfView = zoomLength[length];//使cam.fieldOfView的数值为缩放等级中的精确数值
}
}
}
2.通过鼠标滚轮调节摄像机视野(FOV)
实现原理
通过获取虚拟轴"Mouse ScrollWheel"鼠标滑轮来调节FOV的数值,代码如下:
public class MouseScrollWheelDemo : MonoBehaviour
{
private Camera m_Camera;
public float speed = 5;
void Start()
{
m_Camera = GetComponent<Camera>();
}
void Update()
{
MouseScrollWheelRun();
}
public void MouseScrollWheelRun()
{
m_Camera.fieldOfView -= Input.GetAxis("Mouse ScrollWheel")*speed;
}
}
3.菜单确认后进行场景转换
- 首先先利用UI系统绘制游戏开始菜单,给Button加上加载游戏事件,事件代码如下:
using UnityEngine;
using UnityEngine.SceneManagement;
public class LevelManager : MonoBehaviour
{
public string sceneToLoad = "Game";
public void LoadGame ()
{
SceneManager.LoadScene(sceneToLoad);//可以写Build-setting中的索引号,也可以写场景的名字
}
}
- 制作游戏界面Game(与Button加载事件的方法LoadScene()中的名字一样)
- 在Build-setting中加入这两个场景,菜单栏因放在上层
更多推荐
所有评论(0)
您需要登录才能发言
加载更多