此脚本实现: 
1  右键瞄准 和左键取消瞄准
2  武器的左右摆动和上下摆动

//Ironsights.cs by Azuline Studios© All Rights Reserved
//Adjusts weapon position and bobbing speeds and magnitudes
//for various player states like zooming, sprinting, and crouching.
using UnityEngine;
using System.Collections;public class Ironsights : MonoBehaviour {//other objects accessed by this script[HideInInspector]public GameObject playerObj;[HideInInspector]public GameObject weaponObj;[HideInInspector]public GameObject CameraObj;public Camera WeapCameraObj;//weapon object (weapon object child) set by PlayerWeapons.cs scriptpublic GameObject gunObj;//Var set to sprint animation time of weaponpublic Transform gun;//this set by PlayerWeapons script to active weapon transformprivate Transform mainCamTransform;//weapon positioning  private float nextPosX = 0.0f;//weapon x position that is smoothed using smoothDamp functionprivate float nextPosY = 0.0f;//weapon y position that is smoothed using smoothDamp functionprivate float newPosX = 0.0f;//target weapon x position that is smoothed using smoothDamp functionprivate float newPosY = 0.0f;//target weapon y position that is smoothed using smoothDamp functionprivate float dampVelocity = 0.0f;//velocities that are used by smoothDamp functionprivate float dampVelocity2 = 0.0f;private float dampVelocity3 = 0.0f;private Vector3 tempGunPos = Vector3.zero;//camera FOV handlingpublic float defaultFov = 75.0f;//default camera field of view valuepublic float sprintFov = 85.0f;//camera field of view value while sprintingpublic float weaponCamFovDiff = 20.0f;//amount to subtract from main camera FOV for weapon camera FOVprivate float nextFov = 75.0f;//camera field of view that is smoothed using smoothDampprivate float newFov = 75.0f;//camera field of view that is smoothed using smoothDampprivate float FovSmoothSpeed = 0.15f;//speed that camera FOV is smoothed//zoomingpublic enum zoomType{hold,toggle,both}public zoomType zoomMode = zoomType.both;public float zoomSensitivity = 0.5f;//percentage to reduce mouse sensitivity when zoomedpublic AudioClip sightsUpSnd;public AudioClip sightsDownSnd;[HideInInspector]public bool zoomSfxState = true;//var for only playing sights sound effects once[HideInInspector]public bool reloading = false;//this variable true when player is reloading//bobbing speeds and amounts for player movement states   public float WalkHorizontalBobAmount = 0.11f;public float WalkVerticalBobAmount = 0.075f;public float WalkBobPitchAmount = 0.0175f;public float WalkBobRollAmount = 0.01f;public float WalkBobSpeed = 12f;public float CrouchHorizontalBobAmount = 0.11f;public float CrouchVerticalBobAmount = 0.075f;public float CrouchBobPitchAmount = 0.025f;public float CrouchBobRollAmount = 0.055f;public float CrouchBobSpeed = 8f;public float ZoomHorizontalBobAmount = 0.016f;public float ZoomVerticalBobAmount = 0.0075f;public float ZoomBobPitchAmount = 0.001f;public float ZoomBobRollAmount = 0.008f;public float ZoomBobSpeed = 8f;public float SprintHorizontalBobAmount = 0.135f;public float SprintVerticalBobAmount = 0.16f;public float SprintBobPitchAmount = 0.12f;public float SprintBobRollAmount = 0.075f;public float SprintBobSpeed = 19f;//gun X position amount for tweaking ironsights positionprivate float horizontalGunPosAmt = -0.02f;private float weaponUnzoomXPositionSprintAmt = 0.0f;//vars to scale up bob speeds slowly to prevent jerky transitionsprivate float HBamt = 0.075f;//dynamic head bobbing variableprivate float HRamt = 0.125f;//dynamic head rolling variableprivate float HPamt = 0.1f;//dynamic head pitching variableprivate float GBamt = 0.075f;//dynamic gun bobbing variable//weapon sprinting positioningprivate float gunup = 0.015f;//amount to move weapon up while sprintingprivate float gunRunSide = 1.0f;//to control horizontal bobbing of weapon during sprintingprivate float gunRunUp = 1.0f;//to control vertical bobbing of weapon during sprintingprivate float sprintBob = 0.0f;//to modify weapon bobbing speeds when sprintingprivate float sprintBobAmtX = 0.0f;//actual horizontal weapon bobbing speed when sprintingprivate float sprintBobAmtY = 0.0f;//actual vertical weapon bobbing speed when sprinting//weapon positioningprivate float yDampSpeed= 0.0f;//this value used to control speed that weapon Y position is smoothedprivate float bobDir = 0.0f;//positive or negative direction of bobbingprivate float bobMove = 0.0f;private float sideMove = 0.0f;[HideInInspector]public float switchMove = 0.0f;//for moving weapon down while switching weapons[HideInInspector]public float climbMove = 0.0f;//for moving weapon down while climbingprivate float jumpmove = 0.0f;//for moving weapon down while jumping[HideInInspector]public float jumpAmt = 0.0f;private float idleX = 0.0f;//amount of weapon movement when idleprivate float idleY = 0.0f;[HideInInspector]public float side = 0.0f;//amount to sway weapon position horizontally[HideInInspector]public float raise = 0.0f;//amount to sway weapon position vertically[HideInInspector]public float gunAnimTime = 0.0f;void Update (){mainCamTransform = Camera.main.transform;//Set up external script referencesSmoothMouseLook SmoothMouseLook = CameraObj.GetComponent<SmoothMouseLook>();PlayerWeapons PlayerWeaponsComponent = weaponObj.GetComponent<PlayerWeapons>();FPSRigidBodyWalker FPSWalker = playerObj.GetComponent<FPSRigidBodyWalker>();WeaponBehavior WeaponBehaviorComponent = gunObj.GetComponent<WeaponBehavior>();VerticalBob VerticalBob = playerObj.GetComponent<VerticalBob>();HorizontalBob HorizontalBob = playerObj.GetComponent<HorizontalBob>();FPSPlayer FPSPlayerComponent = playerObj.GetComponent<FPSPlayer>();if(Time.timeScale > 0 && Time.deltaTime > 0){//allow pausing by setting timescale to 0//main weapon position smoothing happens here.Camera.main.fieldOfView = Mathf.SmoothDamp(Camera.main.fieldOfView, nextFov, ref dampVelocity2, FovSmoothSpeed, Mathf.Infinity, Time.deltaTime);newPosX = Mathf.SmoothDamp(gun.localPosition.x, nextPosX, ref dampVelocity, yDampSpeed, Mathf.Infinity, Time.deltaTime);newPosY = Mathf.SmoothDamp(gun.localPosition.y, nextPosY, ref dampVelocity3, yDampSpeed, Mathf.Infinity, Time.deltaTime);//Sync camera FOVsWeapCameraObj.fieldOfView = Camera.main.fieldOfView - weaponCamFovDiff;//Camera.main.fieldOfView = newFov;//Get input from player movement scriptfloat horizontal = FPSWalker.inputX;float vertical = FPSWalker.inputY;///Adjust weapon position and bobbing amounts dynamicly based on movement and player states/if (Mathf.Abs(horizontal) != 0 || ((!FPSPlayerComponent.useAxisInput && (Input.GetKey (FPSPlayerComponent.moveForward) || Input.GetKey (FPSPlayerComponent.moveBack)))|| (FPSPlayerComponent.useAxisInput && Mathf.Abs(vertical) > 0.1f))){idleY = 0;idleX = 0;//check for sprintingif (FPSWalker.sprintActive&& !FPSPlayerComponent.zoomed&& !FPSWalker.crouched&& FPSWalker.midPos >= FPSWalker.standingCamHeight//player might not have completely stood up yet from crouch&& !((Mathf.Abs(horizontal) != 0.0f) && (Mathf.Abs(vertical) < 0.75f))&& !FPSWalker.cancelSprint){sprintBob = 128.0f;if (!FPSWalker.cancelSprint&& !reloading&& !FPSWalker.jumping&& FPSWalker.fallingDistance < 0.75f){//actually sprinting now//set the camera's fov back to normal if the player has sprinted into a wall, but the sprint is still activeif(FPSWalker.inputY != 0){nextFov = sprintFov;}else{nextFov = defaultFov;  }//gradually move weapon more towards center while sprintingweaponUnzoomXPositionSprintAmt = Mathf.MoveTowards(weaponUnzoomXPositionSprintAmt, WeaponBehaviorComponent.weaponUnzoomXPositionSprint, Time.deltaTime * 16);horizontalGunPosAmt = WeaponBehaviorComponent.weaponUnzoomXPosition + weaponUnzoomXPositionSprintAmt;gunRunSide = 2.0f;if(gunRunUp < 1.4f){gunRunUp += Time.deltaTime / 4.0f;}//gradually increase for smoother transitionbobMove = gunup + WeaponBehaviorComponent.weaponUnzoomYPositionSprint;//raise weapon while sprinting}else{//not sprintingnextFov = defaultFov;horizontalGunPosAmt = WeaponBehaviorComponent.weaponUnzoomXPosition;gunRunSide = 1.0f;gunRunUp = 1.0f;bobMove = -0.01f;switchMove = 0.0f;}}else{//walkinggunRunSide = 1.0f;gunRunUp = 1.0f;//reset horizontal weapon positioning var and make sure it returns to zero when not sprinting to prevent unwanted side movementweaponUnzoomXPositionSprintAmt = Mathf.MoveTowards(weaponUnzoomXPositionSprintAmt, 0, Time.deltaTime * 16);horizontalGunPosAmt = WeaponBehaviorComponent.weaponUnzoomXPosition + weaponUnzoomXPositionSprintAmt;if(reloading){//move weapon position up when reloading and moving for full view of animationnextFov = defaultFov;sprintBob = 216;bobMove = 0.0F;sideMove = -0.0f;}else{nextFov = defaultFov;if(FPSPlayerComponent.zoomed && WeaponBehaviorComponent.meleeSwingDelay == 0) {//zoomed and not melee weaponprint("zoom03");//sprintBob = 96.0f;//                       if (Mathf.Abs(horizontal) != 0 || Mathf.Abs(vertical) > 0.75f){//                           bobMove = -0.001f;//move weapon down//                     }else{bobMove = 0.0F;//move weapon to idle//                       }}else{//not zoomedsprintBob = 216.0f;if(Mathf.Abs(horizontal) != 0 || Mathf.Abs(vertical) > 0.75f){//move weapon down and left when crouchingif (FPSWalker.crouched || FPSWalker.midPos < FPSWalker.standingCamHeight * 0.85f) {bobMove = -0.01f;sideMove = -0.0125f;}else{bobMove = -0.005f;sideMove = -0.00f;}}else{//move weapon to idlebobMove = 0.0F;sideMove = 0.0F;}}}}}else{//if not moving (no player movement input)nextFov = defaultFov;horizontalGunPosAmt = WeaponBehaviorComponent.weaponUnzoomXPosition;if(weaponUnzoomXPositionSprintAmt > 0){weaponUnzoomXPositionSprintAmt -= Time.deltaTime / 4;}sprintBob = 96.0f;if(reloading){nextFov = defaultFov;sprintBob = 96.0f;bobMove = 0.0F;sideMove = -0.0f;}else{//move weapon to idleif((FPSWalker.crouched || FPSWalker.midPos < FPSWalker.standingCamHeight * 0.85f) && !FPSPlayerComponent.zoomed) {bobMove = -0.005f;sideMove = -0.0125f;}else{bobMove = 0.0f;sideMove = 0.0f;}}//weapon idle motionif(FPSPlayerComponent.zoomed && WeaponBehaviorComponent.meleeSwingDelay == 0) {print("zoom05");// idleX = Mathf.Sin(Time.time * 1.25f) / 4800.0f;//  idleY = Mathf.Sin(Time.time * 1.5f) / 4800.0f;}else{if(!FPSWalker.swimming){idleX = Mathf.Sin(Time.time * 1.25f) / 800.0f;idleY = Mathf.Sin(Time.time * 1.5f) / 800.0f;}else{idleX = Mathf.Sin(Time.time * 1.25f) / 400.0f;idleY = Mathf.Sin(Time.time * 1.5f) / 400.0f;   }}}///Weapon Swaying/Bobbing while moving///track X axis while walking for side to side bobbing effect  if(HorizontalBob.waveslice != 0){bobDir = 1;}else{bobDir = -1;}//Reduce weapon bobbing by sprintBobAmount value defined in WeaponBehavior script.//This is for fine tuning of weapon bobbing. Pistols look better with less sprint bob //because they use a different sprinting anim and have a different sprinting position //than the animation used by rifle-type weapons.if(WeaponBehaviorComponent.sprintBobAmountX == 1 || !FPSWalker.canRun){sprintBobAmtX = sprintBob;}else{sprintBobAmtX = sprintBob / WeaponBehaviorComponent.sprintBobAmountX;}if(WeaponBehaviorComponent.sprintBobAmountY == 1 || !FPSWalker.canRun){sprintBobAmtY = sprintBob;}else{sprintBobAmtY = sprintBob / WeaponBehaviorComponent.sprintBobAmountY;}//set smoothed weapon position to actual gun position vectortempGunPos.x = newPosX;tempGunPos.y = newPosY;tempGunPos.z = gun.localPosition.z;//apply temporary vector to gun's transform positiongun.localPosition = tempGunPos;//lower weapon when jumping, falling, or slipping off ledgeif(FPSWalker.jumping || FPSWalker.fallingDistance > 1.25f){//lower weapon less when zoomedif (!FPSPlayerComponent.zoomed){//raise weapon when jump is ascending and lower when descendingif((FPSWalker.airTime + 0.175f) > Time.time){jumpmove = 0.015f;}else{jumpmove = -0.025f;}}else{jumpmove = -0.01f;}}else{jumpmove = 0.0f;}///Adjust vars for zoom and other states/float deltaAmount = Time.deltaTime * 100;//define delta for framerate independencefloat bobDeltaAmount = 0.12f / Time.deltaTime;//define bobbing delta for framerate independenceif(!WeaponBehaviorComponent.PistolSprintAnim || !FPSWalker.canRun){gunAnimTime = gunObj.animation["RifleSprinting"].normalizedTime;//Track playback position of rifle sprinting animation}else{gunAnimTime = gunObj.animation["PistolSprinting"].normalizedTime;//Track playback position of pistol sprinting animation    }//if zoomed//换枪、装弹以及加速跑期间,不能够使用右键瞄准if(FPSPlayerComponent.zoomed&& PlayerWeaponsComponent.switchTime + WeaponBehaviorComponent.readyTime < Time.time&& !reloading && PlayerWeaponsComponent.currentWeapon != 0){//右键瞄准nextFov = WeaponBehaviorComponent.zoomFOV;FovSmoothSpeed = 0.09f;yDampSpeed = 0.09f;nextPosX = WeaponBehaviorComponent.weaponZoomXPosition ;nextPosY = WeaponBehaviorComponent.weaponZoomYPosition;              }else{//取消右键瞄准FovSmoothSpeed = 0.18f;yDampSpeed = 0.18f;nextPosX =horizontalGunPosAmt ;nextPosY =WeaponBehaviorComponent.weaponUnzoomYPosition;FPSWalker.zoomSpeed = false;    //Set weapon and view bobbing amountsif (FPSWalker.sprintActive&& !((Mathf.Abs(horizontal) != 0) && (Mathf.Abs(vertical) < 0.75f))&& !FPSWalker.cancelSprint&& !FPSWalker.crouched&& FPSWalker.midPos >= FPSWalker.standingCamHeight&& !FPSPlayerComponent.zoomed&& !Input.GetKey (FPSPlayerComponent.fire)){//scale up bob speeds slowly to prevent jerky transitionif (FPSWalker.grounded){sprinting bobbing amounts//horizontal bobbing if(GBamt < SprintHorizontalBobAmount){GBamt += 0.005f * deltaAmount;}if(GBamt > SprintHorizontalBobAmount){GBamt -= 0.005f * deltaAmount;}//vertical bobbingif(HBamt < SprintVerticalBobAmount){HBamt += 0.005f * deltaAmount;}if(HBamt > SprintVerticalBobAmount){HBamt -= 0.005f * deltaAmount;}//pitchingif(HPamt < SprintBobPitchAmount){HPamt += 0.0075f * deltaAmount;}if(HPamt > SprintBobPitchAmount){HPamt -= 0.0075f * deltaAmount;}//rollingif(HRamt < SprintBobRollAmount){HRamt += 0.0075f * deltaAmount;}if(HRamt > SprintBobRollAmount){HRamt -= 0.0075f * deltaAmount;}}else{//reduce bobbing amounts for smooth jumping/landing transitionif(HBamt > 0.0f){HBamt -= 0.01f * deltaAmount;}if(HRamt > 0.0f){HRamt -= 0.02f * deltaAmount;}if(HPamt > 0.0f){HPamt -= 0.02f * deltaAmount;}if(GBamt > 0.0f){GBamt -= 0.01f * deltaAmount;}}//Set bobbing speeds and amounts in other scripts to these smoothed valuesVerticalBob.bobbingSpeed = SprintBobSpeed;//make horizontal bob speed half as slow as vertical bob speed for synchronization of bobbing motionsHorizontalBob.bobbingSpeed = SprintBobSpeed / 2.0f;HorizontalBob.bobbingAmount = GBamt * deltaAmount;//apply delta at this step for framerate independenceVerticalBob.rollingAmount = HRamt * deltaAmount;VerticalBob.pitchingAmount = HPamt * deltaAmount;VerticalBob.bobbingAmount = HBamt * deltaAmount;}else{//scale up bob speeds slowly to prevent jerky transitionif (FPSWalker.grounded) {if (!FPSWalker.crouched && FPSWalker.midPos >= FPSWalker.standingCamHeight){walking bob amounts/////horizontal bobbing if(GBamt < WalkHorizontalBobAmount){GBamt += 0.005f * deltaAmount;}if(GBamt > WalkHorizontalBobAmount){GBamt -= 0.005f * deltaAmount;}//vertical bobbingif(HBamt < WalkVerticalBobAmount){HBamt += 0.005f * deltaAmount;}if(HBamt > WalkVerticalBobAmount){HBamt -= 0.005f * deltaAmount;}//pitchingif(HPamt < WalkBobPitchAmount){HPamt += 0.0075f * deltaAmount;}if(HPamt > WalkBobPitchAmount){HPamt -= 0.0075f * deltaAmount;}//rollingif(!FPSWalker.swimming){if(HRamt < WalkBobRollAmount){HRamt += 0.0075f * deltaAmount;}if(HRamt > WalkBobRollAmount){HRamt -= 0.0075f * deltaAmount;}}else{if(HRamt < WalkBobRollAmount * 2.0f){HRamt += 0.0075f * deltaAmount;}if(HRamt > WalkBobRollAmount * 2.0f){HRamt -= 0.0075f * deltaAmount;} }if(!FPSWalker.swimming){VerticalBob.bobbingSpeed = WalkBobSpeed;//make horizontal bob speed half as slow as vertical bob speed for synchronization of bobbing motionsHorizontalBob.bobbingSpeed = WalkBobSpeed / 2.0f;}else{//bobbing is slower while swimmingVerticalBob.bobbingSpeed = WalkBobSpeed/2;HorizontalBob.bobbingSpeed = WalkBobSpeed / 4.0f;}}else{crouching bob amounts//horizontal bobbing if(GBamt < CrouchHorizontalBobAmount){GBamt += 0.005f * deltaAmount;}if(GBamt > CrouchHorizontalBobAmount){GBamt -= 0.005f;}//vertical bobbingif(HBamt < CrouchVerticalBobAmount){HBamt += 0.005f * deltaAmount;}if(HBamt > CrouchVerticalBobAmount){HBamt -= 0.005f * deltaAmount;}//pitchingif(HPamt < CrouchBobPitchAmount){HPamt += 0.0075f * deltaAmount;}if(HPamt > CrouchBobPitchAmount){HPamt -= 0.0075f * deltaAmount;}//rollingif(HRamt < CrouchBobRollAmount){HRamt += 0.0075f * deltaAmount;}if(HRamt > CrouchBobRollAmount){HRamt -= 0.0075f * deltaAmount;}VerticalBob.bobbingSpeed = CrouchBobSpeed;HorizontalBob.bobbingSpeed = CrouchBobSpeed / 2.0f;}}else{//reduce bobbing amounts for smooth jumping/landing transitionif(HBamt > 0.0f){HBamt -= 0.01f * deltaAmount;}if(HRamt > 0.0f){HRamt -= 0.02f * deltaAmount;}if(HPamt > 0.0f){HPamt -= 0.02f * deltaAmount;}if(GBamt > 0.0f){GBamt -= 0.01f * deltaAmount;}    }VerticalBob.bobbingAmount = GBamt * deltaAmount;//apply delta at this step for framerate independenceVerticalBob.rollingAmount = HRamt * deltaAmount;VerticalBob.pitchingAmount = HPamt * deltaAmount;HorizontalBob.bobbingAmount = HBamt * deltaAmount;}}}}}

Unity Realistic FPS插件 Ironsights脚本简化相关推荐

  1. Unity的NGUI插件篇——入场效果

    Unity的NGUI插件篇--入场效果 入场效果 入场效果需要借助于NGUI提供的TweenPosition类来完成,为了说明此类的使用方法,本节将使会讲解两个示例.本文选自  大学霸 <NGU ...

  2. Unity使用OpenCV插件实现人脸融合 —— 换脸换装示例

    Unity使用OpenCV插件实现人脸融合 案例说明 Unity版本以及必备插件 快速上手 核心(黑心)方法(脚本): 结束 案例说明 本章节针对部分网友提出的看不懂源码,拿到相关资料后这也报错,那也 ...

  3. unity 使用ump插件播放视频 ,打包发布后黑屏或者在别人电脑上运行黑屏,解决方案

    unity 使用ump插件播放视频 ,打包发布后黑屏或者在别人电脑上运行黑屏,解决方案. ump插件下载 最近在项目里面 需要接入海康监控 并在unity中显示,我选择使用ump 插件播放视频, 刚开 ...

  4. C#开发Unity游戏教程之使用脚本变量

    C#开发Unity游戏教程之使用脚本变量 使用脚本变量 本章前面说了那么多关于变量的知识,那么在脚本中要如何编写关于变量的代码,有规章可循吗?答案是有的.本节会依次讲解变量的声明.初始化.赋值和运算. ...

  5. unity双击打不开脚本_游戏对象和脚本 (创建一个时钟)

    该文章是一篇译文,附上原文链接 Game Objects and Scripts​catlikecoding.com 使用简单对象构建一个时钟 编写一个C#脚本 转动时钟的指针来显示时间 创建指针动画 ...

  6. Unity时钟定时器插件

    Unity时钟定时器插件 http://dsqiu.iteye.com/blog/2020603 https://github.com/joserocha3/KillerCircles/blob/67 ...

  7. Unity显示FPS帧数

    俩种情况 1.开发测试的时候 可以在Game视图中点击Stats查看 2.发布后看FPS 新建一个脚本FPSDisplay.cs,拖到相机上.(该脚本翻墙找的,如果有知道出处的可以跟我说(我忘了),我 ...

  8. 最新易语言调用大漠插件制作脚本入门教程

    最新易语言调用大漠插件制作脚本入门教程 这是田野学院的一套零基础视频.学习做辅助脚本入门还是不错的. https://pan.baidu.com/s/1BWd2_kIjL6OLE7q-VcDVlw 提 ...

  9. Unity好用插件集合1

    插件集合 3D Character Pack 4 characters LuciSoft 3D Low Poly Car For Games 14 Arrow Animations 1.0 A Pat ...

最新文章

  1. Oracle-数据字典解读
  2. .net3.5下使用LINQ递归算法实现简洁代码
  3. MONGODB 集群 配置及 客户端PHP 连接
  4. Python调试方法
  5. excel 统计字数公式
  6. 任意切割一张图片成新图片
  7. 想自学python看哪位的视频比较好-python自学视频看这个就对了
  8. cartopy模块介绍与安装
  9. 技术人 | 如何做一个明白状况的研发主管?
  10. 软件工程第1次阅读作业
  11. MHEG5简介amp;多媒体技术教程
  12. BUCK降压电路和BOOST升压电路
  13. CCNA考试题库中英文翻译版及答案5
  14. VMware Workstation安装windows xp系统并创建虚拟软盘
  15. 项目管理软件之争,禅道和JIRA大对比
  16. [爬虫] 上海大学自动抢课工具
  17. 隐私计算加密技术基础系列(下)对称与非对称加密的应用场景
  18. 喵的Unity游戏开发之路 - 互动环境(有影响的运动)
  19. latex数学符号(持续更新)
  20. 网线和水晶头的分类(这是真的不知道还有这样的区别)

热门文章

  1. ssm框架实现登陆页面邮箱验证
  2. 三万字总结╰(*°▽°*)╯ 计算机网络 知识点汇总
  3. MySQL中函数field()的用法
  4. 为什么安装好mysql打不开_MySQL安装完成之后怎么启动? mysql安装完成后怎么
  5. Confidence Rekindles In Credit Mkts
  6. (20201015 Solved)docker-compose创建网络ERROR: Pool overlaps with other one on this address space
  7. 知网caj怎么转成可编辑的Word?手机可以转吗?
  8. 由浅入深学习Flash制作赛车游戏教程
  9. configure: error: Support for POSIX ACLs is required
  10. 成长有方法:爆发式成长的25个思维模型