其他分享
首页 > 其他分享> > unity射击游戏的倍镜

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