当前位置: 首页 > news >正文

百度广告联盟赚广告费群排名优化软件

百度广告联盟赚广告费,群排名优化软件,线上推广的优势和好处,深圳网站建设三把火科技前言 在一些射击类的游戏中#xff0c;经常会有一些类似炮台的武器#xff0c;可以上下左右旋转#xff0c;对目标进行瞄准。又或者是人物身上的枪支#xff0c;在准心转动的时候#xff0c;保持着武器朝向准心的方向。本篇简单的进行了效果的实现#xff0c;如下图经常会有一些类似炮台的武器可以上下左右旋转对目标进行瞄准。又或者是人物身上的枪支在准心转动的时候保持着武器朝向准心的方向。本篇简单的进行了效果的实现如下图 首先需要了解下有关pitchyawroll的含义 pitch是围绕X轴旋转也叫做俯仰角武器上下转动如图 yaw是围绕Y轴旋转也叫偏航角武器左右转动如图 roll是围绕Z轴旋转也叫翻滚角如图 根据需求我们一般只需要实现武器的pitch和yaw旋转即可来达到瞄准指定位置的效果。 思路 首先类似于炮台一般炮身和炮管会分开转动比如炮身只可左右转动yaw炮管上下转动pitch。我们需要两个Transform来分别控制旋转其中炮管要作为炮身子控件。但是枪支那种一般就不会分成两个控件所以我们把两个Transform同时指向同一控件即可。同时再用一个Transform指向瞄准物同时我们可以设置一些最大旋转角度限制。 需求1武器一直瞄准瞄准物但是当瞄准物在武器身后的时候不进行瞄准处理可以计算武器到瞄准物和武器正前方直接的夹角若夹角90度即做瞄准操作否则则不处理。 需求2yaw旋转即根据Y轴旋转eulerAngles.y进行变动物体呈左右转动之势。因为是左右旋转所以我们可以忽略武器和瞄准物的Y轴高度差距使两者在同一高度的情况下可以使用Vector3.ProjectOnPlane将武器到瞄准物的向量映射到武器的xz平面上计算武器forward的向量和武器到瞄准物的向量之间的夹角若夹角为0则已瞄准否则则改动eulerAngles.y的值使Transform.forward变动从而让夹角为0。我们可以利用向量的叉乘Vector3.Cross来判断两个向量之间的左右关系 需求3picth旋转基本和yaw旋转同理只是改变的是eulerAngles.x的值。 实现 直接上代码绑定在武器的父节点GameObject上绑定好对应关联即可 using UnityEngine;public class AutoRotationGun : MonoBehaviour {//最大旋转角度限制public int MaxPitchAngle 60;public int MaxYawAngle 60;//旋转速度public int Speed 20;//pitch转动的物体public Transform PitchTransform;//yaw转动的物体public Transform YawTransform;//瞄准物public Transform TargetTransform;Vector3 mPitchTarget, mYawTarget;float mCurrentPitchAngle, mCurrentYawAngle;Transform mTransform;float mPitchAngleOffset, mYawAngleOffset, mAimAngleOffset;Vector3 mPitchCross, mYawCross;void Start(){mTransform transform;}void Update(){if (TargetTransform ! null IsCanAim()){//旋转不使用PitchTransform.Rotate(x,y,z)防止z轴的变化if (PitchTransform YawTransform){PitchTransform.localEulerAngles new Vector3(PitchRotation(Speed * Time.deltaTime), YawRotation(Speed * Time.deltaTime), 0);}else{PitchTransform.localEulerAngles new Vector3(PitchRotation(Speed * Time.deltaTime), 0, 0);YawTransform.localEulerAngles new Vector3(0, YawRotation(Speed * Time.deltaTime), 0);}} #if UNITY_EDITORDebug.DrawRay(PitchTransform.position, PitchTransform.forward * 100, Color.red); #endif}bool IsCanAim(){//武器到瞄准物的向量与武器的正前面的夹角在90度以内才可瞄准if (PitchTransform ! null YawTransform ! null){//mAimAngleOffset Mathf.Acos(Vector3.Dot(transform.forward, (TargetTransform.position - PitchTransform.position).normalized)) * Mathf.Rad2Deg;mAimAngleOffset Vector3.Angle(mTransform.forward, TargetTransform.position - PitchTransform.position);if (mAimAngleOffset 90){return true;}}return false;}float PitchRotation(float speed){//当前旋转角度mCurrentPitchAngle PitchTransform.localEulerAngles.x;if (mCurrentPitchAngle 180){mCurrentPitchAngle -(360 - mCurrentPitchAngle);}//武器到瞄准物的向量映射到武器的yz屏幕上的法向量mPitchTarget Vector3.ProjectOnPlane(TargetTransform.position - PitchTransform.position, PitchTransform.right).normalized;//计算当前瞄准方向与预期方向的夹角。大于精度则需要pitch转动来调整mPitchAngleOffset Vector3.Angle(PitchTransform.forward, mPitchTarget);if (mPitchAngleOffset 0) {return mCurrentPitchAngle;}if (mPitchAngleOffset speed) {speed mPitchAngleOffset;}//计算两个向量的叉乘用于判断向量的左右关系mPitchCross Vector3.Cross(mPitchTarget, PitchTransform.forward).normalized;if (mCurrentPitchAngle -MaxPitchAngle mPitchCross PitchTransform.right) {return mCurrentPitchAngle - speed;}else if (mCurrentPitchAngle MaxPitchAngle mPitchCross ! PitchTransform.right) {return mCurrentPitchAngle speed;}return mCurrentPitchAngle;}float YawRotation(float speed){mCurrentYawAngle YawTransform.localEulerAngles.y;if (mCurrentYawAngle 180){mCurrentYawAngle -(360 - mCurrentYawAngle);}mYawTarget Vector3.ProjectOnPlane(TargetTransform.position - YawTransform.position, YawTransform.up).normalized;mYawAngleOffset Vector3.Angle(YawTransform.forward, mYawTarget);if (mYawAngleOffset 0) {return mCurrentYawAngle;}if (mYawAngleOffset speed) {speed mYawAngleOffset;}mYawCross Vector3.Cross(mYawTarget, YawTransform.forward).normalized;if (mCurrentYawAngle -MaxYawAngle mYawCross YawTransform.up) {return mCurrentYawAngle - speed;}else if (mCurrentYawAngle MaxYawAngle mYawCross ! YawTransform.up) {return mCurrentYawAngle speed;}return mCurrentYawAngle;} }
http://www.dnsts.com.cn/news/69361.html

相关文章:

  • 对电子商务网站建设与管理的心得wordpress修改主题函数
  • 教做香肠的网站wordpress 备份 还原
  • 网站建设合同 知乎wordpress 教程
  • 迪虎科技网站建设网站运营需要 做哪些工作
  • 2018江苏省海门市建设局网站怎么编辑网站代码
  • 网站的ns记录网站建设学生选课系统
  • 网站设计 北京店小小影视免费
  • 网络公司做网站青岛开发区网站建设哪家好
  • 网站建设租房网模块一起做网店17普宁池尾
  • 做购物网站的步骤wordpress实现聊天功能
  • 建设网站的功能定位是什么原因后期网站建设及维护推广
  • 聊城正规网站建设设计公司淘宝联盟网站建设不完整
  • 自己建立网站后怎么做淘客网站建设招标公示
  • 广州网站建设免费wordpress自定义字体
  • 制作网页网站的软件是网络软件开发专业
  • 眉山北京网站建设网站seo优化技能
  • 枣庄建网站通过邮箱查注册网站
  • 新浪云 建设网站wordpress 评论框主题
  • 企业查查官网入口官网南宁网站运营优化平台
  • 网站建设质量体系审核指导自己编写代码建设微网站
  • 建设银行网站色调wordpress商城购物表单
  • 苏州营销型网站制作多少钱那家公司网站做的好
  • 合肥网站建设套餐顺德大良哪家做网站好
  • 网站建设好的乡镇做网站的北京
  • 设计兼职网站推荐免备案网站建设
  • 网站建设要什么软件网站建设企业网站制作平台
  • 外贸手机网站建设秦皇岛北京网站建设
  • 佛山建站 网站 商城企业建设网站个人总结报告
  • 南浦电商网站建设公司网站建设劳伦
  • asp网站建设公司网站如何做301跳转