unity-检测鼠标位置控制枪口朝向

unity-检测鼠标位置控制枪口朝向_第1张图片
Mathf.Clamp

public static float Clamp(float value, float min, float max);
参数
value:鉴于最小值和最大值之间的一个数
min:最小值
max:最大值

using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class GunManager : MonoBehaviour
{
    // Start is called before the first frame update
    //因为鼠标的坐标是以屏幕的左下角为坐标原点
    private float maxYRotaition = 120;//定义鼠标Y坐标的最大值
    private float minYRotaition = 0;//定义鼠标Y坐标的最小值
    private float maxXRotaition = 60;//定义鼠标X坐标的最大值
    private float minXRotaition = 0;//定义鼠标X坐标的最小值
    //和射击有关的代码不需要管
    private float shootTime = 1;
    private float shootTimer = 0;

    void Start()
    {
        
    }

    // Update is called once per frame
    void Update()
    {
        shootTimer += Time.deltaTime;
        if (shootTimer >= shootTime)
        {
            //射击
        }
        float xPosPrecent = Input.mousePosition.x / Screen.width;//获得所在范围的占比
        float yPosPrecent = Input.mousePosition.y / Screen.height;//获得所在范围的占比
        float xAngle = -Mathf.Clamp(yPosPrecent * maxXRotaition,minXRotaition,maxXRotaition)+15;
        float yAngle = Mathf.Clamp(xPosPrecent * maxYRotaition, minYRotaition, maxYRotaition)-60;//角度在-60°到60°之间
        transform.eulerAngles = new Vector3(xAngle, yAngle, 0);//改变要旋转物体的欧拉角
    }
}

最后根据自己的坐标范围控制旋转的角度,便可以实现枪口的旋转了

你可能感兴趣的:(Unity学习)