Unity3D 第三课如何用滚轮放大缩小你的游戏
答案:1 悬赏:30 手机版
解决时间 2021-03-02 20:44
- 提问者网友:欲劫无渡
- 2021-03-01 23:51
Unity3D 第三课如何用滚轮放大缩小你的游戏
最佳答案
- 五星知识达人网友:骨子里都是戏
- 2021-03-02 00:53
p=1433首先要以你当前控制的角色为中心,我们需要以下变量: //最小缩小距离public float theDistance = -10f;//最大缩小距离public float MaxDistance = -10f;//缩放速度public float ScrollKeySpeed = 100.0f; 早Update () 初始化// 滚轮设置 相机与人物e79fa5e98193e58685e5aeb931333332643262的距离.if(Input.GetAxis("Mouse ScrollWheel") != 0){theDistance = theDistance + Input.GetAxis("Mouse ScrollWheel") * Time.deltaTime * ScrollKeySpeed;}// 鼠标滚轮滚动if(theDistance>0)theDistance = 0;if(theDistance < MaxDistance)theDistance = MaxDistance; 下面贴出全部代码using UnityEngine;using System.Collections; [AddComponentMenu("Camera-Control/Mouse Look")]public class MouseLook : MonoBehaviour { public enum RotationAxes { MouseXAndY = 0, MouseX = 1, MouseY = 2 }public RotationAxes axes = RotationAxes.MouseXAndY;public float sensitivityX = 15F;public float sensitivityY = 15F; public float minimumX = -360F;public float maximumX = 360F; public float minimumY = -85F;public float maximumY = 4F; public float rotationY = 0F; public GameObject target; public float theDistance = -10f;public float MaxDistance = -10f;public float ScrollKeySpeed = 100.0f;void Update (){target = GameObject.Find("Player");// 滚轮设置 相机与人物的距离.if(Input.GetAxis("Mouse ScrollWheel") != 0){theDistance = theDistance + Input.GetAxis("Mouse ScrollWheel") * Time.deltaTime * ScrollKeySpeed;}// 鼠标中间滚动得到的值是不确定的,不会正好就是0,或 -10,当大于0时就设距离为0,小于MaxDistance就设置为MaxDistanceif(theDistance>0)theDistance = 0;if(theDistance < MaxDistance)theDistance = MaxDistance;if(Input.GetMouseButton(1)){transform.position = target.transform.position;if (axes == RotationAxes.MouseXAndY){float rotationX = transform.localEulerAngles.y + Input.GetAxis("Mouse X") * sensitivityX; rotationY += Input.GetAxis("Mouse Y") * sensitivityY;rotationY = Mathf.Clamp (rotationY, minimumY, maximumY);transform.localEulerAngles = new Vector3(-rotationY, rotationX, 0);}else if (axes == RotationAxes.MouseX){transform.Rotate(0, Input.GetAxis("Mouse X") * sensitivityX, 0);}else{rotationY += Input.GetAxis("Mouse Y") * sensitivityY;rotationY = Mathf.Clamp (rotationY, minimumY, maximumY);transform.localEulerAngles = new Vector3(-rotationY, transform.localEulerAngles.y, 0);}SetDistance();}else{transform.position = target.transform.position;SetDistance();}} void Start (){if (rigidbody){rigidbody.freezeRotation = true;transform.position = target.transform.position;}} //设置相机与人物之间的距离void SetDistance(){transform.Translate(Vector3.forward * theDistance);}} 运行游戏看看。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯