微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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中选择相机,给对应的位置赋值
当一切就绪后你就会得到一个可以旋转视角的瞄准镜。具体的一些数值需要根据个人习惯调整。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐