永发信息网

Unity3D 第三课如何用滚轮放大缩小你的游戏

答案:1  悬赏:30  手机版
解决时间 2021-03-02 20:44
Unity3D 第三课如何用滚轮放大缩小你的游戏
最佳答案
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);}} 运行游戏看看。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
天刀余音怎么用
canon/佳能m6微单相机 配什么样的外置闪光灯
我的世界神奇宝贝怎么把精灵放在精灵球里
石家庄到承德的公路长是546千米,红红一家从
韩硕是谁?他有名吗?
10.1×47.5-475怎么巧算
请简述特征X射线的产生过程。
盐城市盐都区自考办在哪,我不是盐城本地人,
请从位置、地形、经济、资源、气候五个方面的
微信怎么备份聊天记录
几个数字,英文该怎么写1266,126566,126106206
护士刚毕业除了能考护士资格证还可以考什么证
隐形冠军是什么?
【用动词正确形式填空In fact,no rule of the
丝光棉会起球吗
推荐资讯
为什么我表白后,她拒绝后还理我?
cisco mds 9710有没有模拟器
8×20米门面房设计图
金坛的理发店哪边的好些
用手机注册百度帐号要钱吗
谜语:花前柳畔爱心生
下列选项中属于资金时间价值表现形式的有()。
某城市运用扩散数法对市场景气情况进行预测。
尚景苑在什么地方啊,我要过去处理事情
211大学名单 福建都有哪些211大学
640*480的图片宽高是多少
山后锅边糊地址在什么地方,想过去办事
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?