unity3d 第一次脚本解释MouseLook

 1 using UnityEngine;
 2 using System.Collections;
 3
 4 /// MouseLook rotates the transform based on the mouse delta.
 5 /// Minimum and Maximum values can be used to constrain the possible rotation
 6
 7 /// To make an FPS style character:
 8 /// - Create a capsule.
 9 /// - Add the MouseLook script to the capsule.
10 ///   -> Set the mouse look to use LookX. (You want to only turn character but not tilt it)
11 /// - Add FPSInputController script to the capsule
12 ///   -> A CharacterMotor and a CharacterController component will be automatically added.
13
14 /// - Create a camera. Make the camera a child of the capsule. Reset it‘s transform.
15 /// - Add a MouseLook script to the camera.
16 ///   -> Set the mouse look to use LookY. (You want the camera to tilt up and down like a head. The character already turns.)
17 [AddComponentMenu("Camera-Control/Mouse Look")]
18 public class MouseLook : MonoBehaviour {
19     //3个枚举
20     // 这个表示当前控制模式,分别是
21     // MouseXAndY上下左右旋转
22     // MouseX只能左右旋转
23     // MouseY只能上下旋转
24     public enum RotationAxes { MouseXAndY = 0, MouseX = 1, MouseY = 2 }
25     public RotationAxes axes = RotationAxes.MouseXAndY;
26
27     // 这俩是左右上下旋转时候的灵敏度
28     public float sensitivityX = 15F;
29     public float sensitivityY = 15F;
30
31     // 左右旋转的最大角度
32     public float minimumX = -360F;
33     public float maximumX = 360F;
34
35     //上下旋转最大角度
36     public float minimumY = -60F;
37     public float maximumY = 60F;
38
39     float rotationY = 0F;
40
41     void Update ()
42     {
43         //如果是上下左右旋转的模式
44         if (axes == RotationAxes.MouseXAndY)
45         {
46             // 根据鼠标X轴计算摄像机 Y轴旋转角度
47             float rotationX = transform.localEulerAngles.y + Input.GetAxis("Mouse X") * sensitivityX;
48
49             // 根据鼠标Y轴计算摄像机x轴旋转角度
50             rotationY += Input.GetAxis("Mouse Y") * sensitivityY;
51
52             // 检查上下旋转角度不超过 minimumY和maximumY
53             rotationY = Mathf.Clamp (rotationY, minimumY, maximumY);
54
55             // 设置摄像机旋转角度
56             transform.localEulerAngles = new Vector3(-rotationY, rotationX, 0);
57         }
58         else if (axes == RotationAxes.MouseX)//如果只是左右旋转
59         {
60             transform.Rotate(0, Input.GetAxis("Mouse X") * sensitivityX, 0);
61         }
62         else//如果只是上下旋转
63         {
64             rotationY += Input.GetAxis("Mouse Y") * sensitivityY;
65             rotationY = Mathf.Clamp (rotationY, minimumY, maximumY);
66
67             transform.localEulerAngles = new Vector3(-rotationY, transform.localEulerAngles.y, 0);
68         }
69     }
70
71     void Start ()
72     {
73         // 冻结刚体的旋转功能
74         // Make the rigid body not change rotation
75         if (GetComponent<Rigidbody>())
76             GetComponent<Rigidbody>().freezeRotation = true;
77     }
78 }
时间: 2024-08-30 07:44:21

unity3d 第一次脚本解释MouseLook的相关文章

(转)unity3d中脚本生命周期(MonoBehaviour lifecycle)

自:http://blog.csdn.net/qitian67/article/details/18516503 最近在做一个小示例,发现类继承于MonoBehaviour的类,有很多个方法,于是乎必然要问出一个问题:这么多个方法,执行先后顺序是如何的呢?内部是如何进行管理的呢?于是在网上找了许多资料,发现了Richard Fine在2012年就已经发布了一篇文章,而且讲得算是相当深入,并且很有道理的,这里加上我的一些尝试与思考,分享给大家. 先贴上图,大家有个直观认识: 接下来,做出一下讲解:

【转】Unity3D中脚本的执行顺序和编译顺序

支持原文,原文请戳: Unity3D中脚本的执行顺序和编译顺序 在Unity中可以同时创建很多脚本,并且可以分别绑定到不同的游戏对象上,它们各自都在自己的生命周期中运行.与脚本有关的也就是编译和执行啦,本文就来研究一下Unity中脚本的编译和执行顺序的问题. 事件函数的执行顺序 先说一下执行顺序吧. 官方给出的脚本中事件函数的执行顺序如下图:  我们可以做一个小实验来测试一下: 在Hierarchy视图中创建三个游戏对象,在Project视图中创建三条脚本,如下图所示,然后按照顺序将脚本绑定到对

unity3d摄像机参数解释

unity3d摄像机参数 1. Clear Flags:清除标记.决定屏幕的哪部分将被清除.一般用户使用对台摄像机来描绘不同游戏对象的情况,有3中模式选择: Skybox:天空盒.默认模式.在屏幕中的空白部分将显示当前摄像机的天空盒.如果当前摄像机没有设置天空盒,会默认用Background色. Solid Color:纯色.选择该模式屏幕上的空白部分将显示当前摄像机的background色. Depth only:仅深度.该模式用于游戏对象不希望被裁剪的情况. Dont Clear:不清除.该

Unity3D 中脚本执行的先后顺序

Unity3D本身自带有控制脚本执行先后顺序的方法: Edit ---> Project Settings ---> Script Execution Order  ---> 值越小脚本会越先被执行 Unity3D 中脚本执行的先后顺序,码迷,mamicode.com

U3D——Unity3D的脚本-script入门

 Unity3D的基本操作很容易就能掌握了,接下来就是游戏系统的核心部分:脚本. 什么是Script(脚本)?简而言之,就是使用代码来执行一系列动作命令的特殊文本,它需要编译器来从新解读.U3D内部如何解读脚本,这不是我们所要关心的-这是引擎开发人员的活,我们所要知道的就是脚本的使用规则. [三种语言的特点] U3D支持C#,JavaScript,BOO三种语言格式的代码编写.首先来简单介绍下这三种语言的特点: 对U3D来说,这是入门级的脚本语言,U3D内置的函数都能通过JS方便的调用.语法

【转】Unity3D中脚本的执行顺序和编译顺序(vs工程引用关系)

http://www.cnblogs.com/champ/p/execorder.html 在Unity中可以同时创建很多脚本,并且可以分别绑定到不同的游戏对象上,它们各自都在自己的生命周期中运行.与脚本有关的也就是编译和执行啦,本文就来研究一下Unity中脚本的编译和执行顺序的问题. 事件函数的执行顺序 先说一下执行顺序吧. 官方给出的脚本中事件函数的执行顺序如下图:  我们可以做一个小实验来测试一下: 在Hierarchy视图中创建三个游戏对象,在Project视图中创建三条脚本,如下图所示

(转)Unity3D中脚本的执行顺序和编译顺序(vs工程引用关系)

自:http://www.cnblogs.com/champ/p/execorder.html 在Unity中可以同时创建很多脚本,并且可以分别绑定到不同的游戏对象上,它们各自都在自己的生命周期中运行.与脚本有关的也就是编译和执行啦,本文就来研究一下Unity中脚本的编译和执行顺序的问题. 事件函数的执行顺序 先说一下执行顺序吧. 官方给出的脚本中事件函数的执行顺序如下图:  我们可以做一个小实验来测试一下: 在Hierarchy视图中创建三个游戏对象,在Project视图中创建三条脚本,如下图

[原]Unity3D深入浅出 - 脚本开发基础(Scripts)

常用脚本事件: Update:每帧调用一次 Start:在第一次Update执行前调用 Awake:脚本实例在创建时调用 FixedUpdate:每个固定物理时间间隔调用一次 LateUpdate:每帧调用一次,在Update之后 MonoBehaviour类: MonoBehaviour类是uniyt中非常重要的类,定义了基本的脚本行为,所有脚本类均需要从它直接或间接继承.MonoBehaviour还定义了对各种特定事件的响应函数,这些函数名均以On作为开头,下面是一些常用的事件响应函数. O

Unity3d动画脚本 Animation Scripting

[狗刨学习网] 也许这一篇文章的内容有点枯燥,但我要说的是如果你想深入的了解游戏引擎是如何处理动画片断或者素材并 让玩家操控的角色动起来栩栩如生. 动画脚本 Animation Scripting Unity's 动画系统允许你创建一个漂亮的动画蒙皮角色. 动画系统支持动画融合,混合,添加动画,步调周期时间同步.动画层.控制动画回放的所有方面(时间,速度,混合权重) 每个顶点有1.2.4个骨骼影响的mesh,基于物理系统的布娃娃系统,另外还有程序动画.为了获得最佳效果推荐您在制作模型和动画绑定前