Unity基础剖析
- 格式:doc
- 大小:308.50 KB
- 文档页数:10
MonoBehaviour 类常用的方法Awake() 当一个脚本实例被载入时被调用Start() 仅在Update函数第一次被调用前调用OnEnable() 当脚本处于可用被调用。
Update() 当MonoBehaviour启用时,每一帧调用一次FixedUpdate() 固定时间间隔调用LateUpdate() 每一帧调用一次,当Update执行完后被调用// 总结//1. 按照后添加的脚本先执行的顺序, 依次执行每个脚本的OnGUI() 渲染和处理GUI事件时调用OnDisable() 当脚本组件不可用被调用OnDestroy() 当脚本组件被销毁时被调用tag 可读写属性,游戏物体的tagname 可读写属性,游戏物体的name FindGameObjectsWithTag(string tag)静态方法,返回所有tag标识的物体,返回值是个数组T GetComponent<T>() 泛型实例方法,得到T类型的组件(强烈建议使用) SetActive(bool value) 实例方法,设置游戏物体是否是活动的FindWithTag (string tag) 静态方法,得到tag标识的游戏物体Transform 组件变量position 世界坐标系中transform的位置localPosition 相对于父物体的位置eulerAngles 欧拉角,旋转的角度rotation 世界坐标系中变换的四元数parent 物体父物体的Transform组件root 物体最高层次父物体的Transform组件Transform 组件方法void Translate(Vector3 translation)使当前对象朝一个方向移动void Rotate(Vector3 eulerAngles)按给定的欧拉角进行旋转void RotateAround(Vector3 point, Vector3 axis, float angle) 绕point点沿axis轴旋转angle度Transform Find(string name) 通过名字查找子物体void LookAt(Transform target) 使物体朝向target点Time类time 从游戏开始到现在所用的时间(只读) deltaTime 获取上一次Update()方法执行的时间到本次执行Update()方法时间的差值fixedDeltaTime 在物理和其他固定帧速率进行更新上一帧所消耗的时间, 以秒计算timeScale 表示时间缩放,正常时间为1Vector3 (三维向量)normalized 标准化向量,方向不变,长度为1(只读) magnitude 向量长度(只读)sqrMagnitude 向量长度平方(只读)forward Vector3(0, 0, 1)的简码,Z轴正方向up Vector3(0, 1, 0)的简码,Y轴正方向right Vector3(1, 0, 0)的简码,X轴正方向void Normalize() 标准化向量,长度为1static Vector3 Lerp(Vector3 from, Vector3 to, float t) 两个向量之间的线性差值static float Angle(Ve ctor3 from, Vector3 to)两个向量之间的夹角static float Distance(Vector3 a, Vector3 b) 两向量之间的距离Quaternion (四元数)identity 该四元数无旋转,常用在代码创建对象LookRotation 创建一个旋转,沿着forward(z轴)并且头部沿着upwards(y轴)的约束注视MathfLerp 两个浮点数之间进行插值Clamp 返回一个限制值Sin 计算并返回浮点型的正弦值Cos 计算并返回浮点型的余弦值Abs 计算并返回指定参数的绝对值Max 返回两个值之中最大的值Min 返回两个值之中最小的值Sqr 返回平方根PI 圆周率代码实现父子关系通过属性指定父物体transform.parent = 父物体的transform;通过方法指定父物transform.SetParent (父物体的transform);键盘输入常用的方法GetKey 按键按下期间返回trueGetKeyDown 按键按下的第一帧返回trueGetKeyUp 按键松开的第一帧返回trueInput 类------键盘输入float hor = Input.GetAxis ("Horizontal");float hor = Input.GetAxisInput类------鼠标的属性和方法mousePosition 得到当前鼠标位置GetMouseButtonDown 鼠标按键按下的第一帧返回true GetMouseButtonUp 鼠标按键松开的第一帧返回true GetMouseButton 鼠标按键按下期间一直返回true GetAxis(“Mouse X”) 得到一帧内鼠标在水平方向的移动距离GetAxis(“Mouse Y”) 得到一帧内鼠标在垂直方向的移动距离GetAxis(“Mouse ScrollWheel”) 获取鼠标滚轮的值场景物体的鼠标事件OnMouseDown 鼠标在Collider之上,按下鼠标,该事件即被触发OnMouseDrag 鼠标在Collider之上,当鼠标拖动时触发OnMouseEnter 移动鼠标进入Collider区域的时候,该事件被触发OnMouseExit 移动鼠标移出Collider区域的时候,该事件被触发OnMouseOver 鼠标处于Collider之上时,每帧都会调用该事件OnMouseUp 当鼠标弹起的时候,该事件被触发调用OnMouseUpAsButton 当鼠标在同一个Collider上按下又弹起的情况下会触发调用该事件刚体组件常用的属性velocity 刚体的速度angularVelocity 刚体的角速度drag 物体的阻力angularDrag 物体的角阻力mass 刚体的质量useGravity 是否受重力影响isKinematic 是否使用动力学freezeRotation 是否冻结旋转collisionDetectionMode 碰撞检测模式position 刚体位置rotation 刚体旋转钢体组件常用的方法AddForce 给刚体添加一个力AddExplosionForce 给刚体添加一个力,模拟爆炸效果AddForceAtPosition 在指定的位置添加一个力AddRelativeForce 添加相对力AddRelativeTorque 添加相对力矩MovePosition 使用刚体移动物体到指定位置碰撞器的回调方法OnCollisionEnter(Collision other) 碰撞开始一瞬间被调用OnCollisionStay(Collision other) 一直保持碰撞状态时被调用OnCollisionExit(Collision other) 碰撞分离的一瞬间被调用触发器的回调方法OnTriggerEnter(Collider other) 进入触发器的时候调用一次OnTriggerStay(Collider other) 处于某个触发器之中的时候持续调用OnTriggerExit(Collider other) 退出触发器的时候调用一次射线Ray ray = new Ray ();origin 射线发射的原点direction 射线发射的方向2D 碰撞和触发的回调方法OnCollisionEnter2D(Collision2D other) 刚进行碰撞时调用OnCollisionStay2D(Collision2D other) 一直保持碰撞时调用OnCollisionExit2D(Collision2D other) 碰撞结束时调用OnTriggerEnter2D(Collider2D other) 刚触发时调用OnTriggerStay2D(Collider2D other) 保持触发状态时调用OnTriggerExit2D(Collider2D other) 触发结束时调用GUI自动布局类方法Lable 创建一个自动布局的标签Box 创建一个自动布局的Box Toggle 创建一个自动布局的开头HorizontalSlider 创建一个水平滑动条Toolbar 创建一个工具栏GUI自定义布局类方法Button 创建按钮,点击执行按钮事件,只执行一次RepeatButton 鼠标点击不松开,会一直执行按钮事件TextArea 创建多行文本区域,编辑字符SelectionGrid 创建按钮网格BeginScrollVie 滚动视图的开始EndScrollView 滚动视图的结束,要与Begin成对出现Window 创建一个弹出窗口UGUI的回调方法void OnPointerEnter(PointerEventData eventData) IPointerEnterHandle 鼠标进入void OnPointerExit(PointerEventData eventData) IPointerExitHandler鼠标离开void OnPointerDown(PointerEventData eventData) IPointerDownHandler 鼠标点下void OnPointerUp(PointerEventData eventData) IPointerUpHandler鼠标抬起void OnPointerClick(PointerEventData eventData) IPointerClickHandle r 鼠标点击void OnBeginDrag(PointerEventData eventData) IBeginDragHandler开始拖拽void OnDrag(PointerEventData eventData)IDragHandler拖拽中void OnEndDrag(PointerEventData eventData)IEndDragHandler结束拖拽Application类常用方法和变量platform 返回游戏运行平台runInBackgruond 应用程序是否在后台运行dataPath 游戏数据文件夹的路径persistentDataPath 一个持久数据目录的路径temporaryCachePath 临时数据/缓存目录的路径loadedLevel 加载的关卡(场景)索引CaptureScreenshot 截屏,以PNG格式存在路径filename OpenURL 在当前设备中调用浏览器打开网页Quit 退出应用程序Animator类SetFloat/GetFloat 设置/获取float类型参数的值SetTrigger 设置一次触发GetCurrentAnimatorStateInfo 获取当前层的状态机信息IsInTransition 判断是否在执行动画过度StringToHash 返回状态机所代表的Hash值使用代码控制状态机首先,需要得到状态参数的散列表ID 和Animator 组件获取状态参数的散列表IDint speedFloat = Animator.stringToHash (“Speed”);int deadBool = Animat or.stringToHash (“Dead”);然后,通过SetXxxxx 函数改变状态参数的值改变Float 类型状态参数的值animator.SetFloat (speedFloat, 2.0f);改变Bool 类型状态参数的值animator.SetFloat (deadBool, true);NavMeshAgent(导航)autoTraverseOffMeshLink 到达跳跃点是否执行跳跃currentOffMeshLinkData 当前连接数据desiredVelocity 期望速度destination 寻路目标remainingDistance 到达目标的剩余距离stoppingDistance 距离目标点队员停止updatePosition 自动更新位置updateRotation 自动更新旋转粒子系统Clear 清除粒子系统里面的所有粒子Emit 立即发射指定数量的粒子IsAlive 判断系统中是否还有粒子(或者产生更多粒子)Pause 暂停粒子系统的播放Play 播放粒子系统Simulate 在给定的时间周期内快进仿真粒子系统,然后暂停它Stop 暂停播放粒子系统实现碰撞的方法void OnParticleCollision (GameObject other){Rigidbody body = other.GetComponent.<Rigidbody>();if(body){Vector3 direction = other.transform.position - transform.position;direction = direction.normalized;body.AddForce(direction * 5);}}Linerenderer常用方法SetColors 设置颜色SetPosition 设置点的位置SetVertexCount 设置定点数SetWidth 设置宽度。