位置: 编程技术 - 正文

Unity3D 里IK手柄的用运(unity手柄圆盘)

编辑:rootadmin
实现功能:1.当点击鼠标右键,左右手扶住武器, 进入射击状态 2.再次点击鼠标右键,武器消失,取消射击状态 解决方法: ①将武器放置为头部的子物体 ②在武器体下面设置3个子空物体,分别作为子弹出射点,左手放置位置,右手放置位置。 void OnAnimatorIK(int layerIndex) { float aim = animator.GetFloat("Aim"); if(layerIndex == 0){ if(target!=null) { //设置武器瞄准目标的位置 Vector3 tPosition = target.transform.position; tPosition.y = tPosition.y &#; 0.2f*(tPosition- animator.rootPosition).magnitude; animator.SetLookAtPosition(tPosition); animator.SetLookAtWeight(aim,0.5f,.5f,0.0f,0.5f); //设置武器消失与出现 if (bazoo != null) { float fire = animator.GetFloat("Fire"); Vector3 pos = new Vector3(-0.f, -0.f, -0.f); Vector3 scale = new Vector3(0.2f, 0.f, 0.2f); pos.x -= fire * 0.2f; scale = scale * aim; bazoo.transform.localScale = scale; 当aim&#;为0时,大小变成了0,武器就消失了 // bazoo.transform.localPosition = pos; } } } if (layerIndex == 1 ) { //设置左手IK权重 if(leftHand!=null) { animator.SetIKPosition(AvatarIKGoal.LeftHand,leftHand.transform.position); animator.SetIKPositionWeight(AvatarIKGoal.LeftHand,aim); } if(rightHand!=null) { //设置右手IK权重 animator.SetIKPosition(AvatarIKGoal.RightHand,rightHand.transform.position); animator.SetIKPositionWeight(AvatarIKGoal.RightHand,aim); } } } //发射子弹 //射击逻辑 if(Input.GetButton("Fire1")&&fire<0.f&&aim>0.f) { animator.SetFloat("Fire",1); if(bullet!=null&&FirePosition!=null) { GameObject newBullet = Instantiate(bullet,FirePosition.transform.position,Quaternion.Euler(0,0,0)) as GameObject; Rigidbody rb = newBullet.GetComponent<Rigidbody>(); if(rb!=null) { rb.velocity = FirePosition.transform.TransformDirection(Vector3.forward*); } } } 源代码:using UnityEngine; using System.Collections;public class fireAndAnimation : MonoBehaviour {protected Animator animator;public GameObject target = null; public GameObject leftHand = null; public GameObject rightHand = null; public GameObject bazoo = null; public GameObject bullet = null; public GameObject FirePosition = null;private bool load = false;// Use this for initializationvoid Start () {animator = GetComponent<Animator>();}// Update is called once per framevoid Update () {if (animator){float aim = animator.GetFloat("Aim");float fire = animator.GetFloat("Fire");// 瞄准逻辑 if (Input.GetButton("Fire2")){if(!load && ( aim<0.)){load = true;} else if (load && aim >0. ){load = false;}} animator.SetFloat("Aim",load?1:0,0.1f,Time.deltaTime);//射击逻辑if(Input.GetButton("Fire1")&&fire<0.f&&aim>0.f){animator.SetFloat("Fire",1);if(bullet!=null&&FirePosition!=null){GameObject newBullet = Instantiate(bullet,FirePosition.transform.position,Quaternion.Euler(0,0,0)) as GameObject; Rigidbody rb = newBullet.GetComponent<Rigidbody>();if(rb!=null){ rb.velocity = FirePosition.transform.TransformDirection(Vector3.forward*);}} }else{animator.SetFloat("Fire",0,0.1f,Time.deltaTime);}float h = Input.GetAxis("Horizontal");float v = Input.GetAxis("Vertical");animator.SetFloat("Speed", h*h&#;v*v); animator.SetFloat("Direction", h, 0.f, Time.deltaTime);}} void OnAnimatorIK(int layerIndex){float aim = animator.GetFloat("Aim");if(layerIndex == 0){if(target!=null){Vector3 tPosition = target.transform.position;tPosition.y = tPosition.y &#; 0.2f*(tPosition- animator.rootPosition).magnitude;animator.SetLookAtPosition(tPosition);animator.SetLookAtWeight(aim,0.5f,.5f,0.0f,0.5f);if (bazoo != null) { float fire = animator.GetFloat("Fire"); Vector3 pos = new Vector3(-0.f, -0.f, -0.f); Vector3 scale = new Vector3(0.2f, 0.f, 0.2f); pos.x -= fire * 0.2f; scale = scale * aim; bazoo.transform.localScale = scale; bazoo.transform.localPosition = pos; } }}if (layerIndex == 1 ){if(leftHand!=null){animator.SetIKPosition(AvatarIKGoal.LeftHand,leftHand.transform.position);animator.SetIKPositionWeight(AvatarIKGoal.LeftHand,aim);}if(rightHand!=null){animator.SetIKPosition(AvatarIKGoal.RightHand,rightHand.transform.position);animator.SetIKPositionWeight(AvatarIKGoal.RightHand,aim);}} }}

推荐整理分享Unity3D 里IK手柄的用运(unity手柄圆盘),希望有所帮助,仅作参考,欢迎阅读内容。

Unity3D 里IK手柄的用运(unity手柄圆盘)

文章相关热门搜索词:unity 手柄插件,unity3d手机端摇杆,unity手柄控制,unity xbox手柄,unity3d手机端摇杆,unity手柄控制,unity手柄圆盘,unity手柄圆盘,内容如对您有帮助,希望把文章链接给更多的朋友!

Unity Shader 常用函数列表 CG标准函数库和C的标准函数库类,Cg提供了一系列内建的标准函数。这些函数用于执行数学上的通用计算或通用算法(纹理映射等),例如,需要求取入

System.Diagnostics.Process.Start操作文件和文件夹(Unity3D) 最近在学习U3D,会写一些脚本工具,操作文件。比如在unity中打开文本:varlogPath=Application.persistentDataPath/log;varfileName=newDirectoryInfo(logPath).GetFiles().OrderBy(t=

[置顶] unity3d Human skin real time rendering 真实模拟人皮实时渲染 先放出结果图片。。。由于网上下的模型是拼的,所以皮,脸颊,嘴唇看起来像存在裂痕,解决方式是加入曲面细分和置换贴图进行一定隆起,但是博

标签: unity手柄圆盘

本文链接地址:https://www.jiuchutong.com/biancheng/384517.html 转载请保留说明!

上一篇:Unity3D选择性渲染技术(unity 3渲2)

下一篇:Unity Shader 常用函数列表(unity shader saturate)

  • 企业支付的租金在汇算时可一次性税前扣除
  • 外贸企业申报退税流程
  • 税负转嫁的概念是什么
  • 应纳税所得额怎么计算应纳税额
  • 分公司税务登记流程视频
  • 应交税费应交印花税借方有余额
  • 公司购入小汽车是否可以抵扣
  • 小企业周转材料包括什么
  • 逾期不缴纳税款责令限改期限内改正的
  • 营业收入管理也是企业财务管理的基本内容
  • 应纳税所得额计算公式excel
  • 领导报销发票挂哪个科目
  • 已销售未开票怎么记账
  • 基本生产车间领用周转材料会计分录
  • 在途物资材料采购的区别
  • 其他综合收益包含哪些科目
  • 赠送的固定资产需要计提折旧吗?
  • 关税不可以抵扣吗
  • 公司车辆高速费用能开增值税专用发票吗
  • 未开票收入为负数如何写说明
  • 普通发票和专用发票的税点一样吗
  • 税务登记号就是发票吗
  • 增值税专票销售额比对(非差额企业)
  • 公立医院规章制度
  • 物业公司广告位出租怎么入账
  • 应纳税所得额计算个税
  • 住宿费算业务招待费还是差旅费?
  • 财务报表申报完可以修改吗
  • 融资租赁纳税人是指
  • 电信服务通信服务费计入什么科目
  • 客运企业安全费用提取标准
  • Win10 Build 19044.1288累积更新补丁KB5006670(附更新修复内容汇总)
  • win7的本地连接在哪
  • 银行电子承兑到期了怎么兑现操作
  • 银行卡账户年费是什么意思 为什么扣我银行卡的钱
  • .exe是什么软件
  • ibm-web-ext.xmi
  • 会计核算形式的定义
  • 可以跨城租车吗
  • 育空河24102
  • vue中 router.beforeEach() 的用法
  • 以银行存款支付业务招待费
  • 小规模纳税人的企业所得税税率
  • get请求与post
  • Laravel5.1自定义500错误页面示例
  • 应交税费的进项税和销项税
  • 增值税进项税加计抵减
  • 各行业税点大全最新
  • 企业所得税季报营业成本包括哪些
  • 网上银行回单可以做账吗
  • Packaging a Qt application
  • python @time
  • 购物赠品的处理流程
  • 以前年度损益调整结转到本年利润吗
  • 会计年度对账
  • 因质量问题免费退货
  • 车辆购置税的计税价格为不含增值税的全部价款
  • 土地使用权的核算
  • 临时工的劳务费需要申报个税吗?
  • 发票没有纳税人识别号怎么重开
  • 复利现值系数表系数表
  • 出口产品报关单
  • 个人咨询费发票怎么开
  • 支付上个月运费
  • 现金股利征收个人所得税吗
  • 仓库做账应该注意些哪些事项
  • sql server设置
  • 服务器centos版本选择
  • win8安全模式修复
  • 苹果mac系统怎么安装pip工具
  • Cocos2dx3.2 Crazy Tetris 制作简单的凸多边形刚体
  • css渐变文本效果在哪
  • Node.js中的事件循环是什么意思
  • app启动页动画效果
  • shell脚本编写 方法
  • koa和express的区别
  • JavaScript中的数据类型
  • 老生常谈的近义词
  • 甘肃省国家税务局电子税务局
  • 12366的客服辛苦吗
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设