位置: 编程技术 - 正文

uGUI实现遥感(unet遥感图像分割)

编辑:rootadmin
好久没有写文章了,最近在做项目是用的unity最新的ui系统UGUI,项目需要做一个摇杆,网上大部分都是用的插件和NGUI做的摇杆,unity自带的摇杆也不怎么好用,而最新的unity4.6.x来了,加入了最新的UI系统“UGUI”,那我们怎么用UGUI来制作摇杆呢~大神勿喷,本人是技术渣渣。比较出色的摇杆插件《Easy Touch》(很强大)还是主要讲讲我们自己怎么做。首先在unity场景里面新建一个空物体和两个Image,把空物体放在创建Image自动生成的Canvas里面,再把两个Image放在空物体里Image建立方式:GameObject->UI->Image 或者直接在“Hierarchy”右键然后UI->Image,看喜好。空物体和两个Image的命名看个人喜好。威恩的节点是这样的: 节点中的joystack是刚刚建立的空节点。Backgound是摇杆的背景。JoystackControl是真实的可以拖动的摇杆。把Backgound和JoystackControl的SourceImage替换成自己喜欢的图片,并且把JoystackControl的图片缩小点,这里我就用系统自带的图片了,威恩这两个节点的inspector如下(我修改过得地方用红框标注了,其他都没改): 如下: 那么样子有了就需要让他动起来,需要三个类“EventTriggerListener”、“JoystackCc”、“PlayerMoveControl”。EventTriggerListener:在NGUI开发的时候处理事件都会用到UIEventListener,我们已经用的习惯的不得了,而UGUI则不是这种机制,并且我觉得这种是最合理的方式,所以自己写一套类&#;的。只是一个帮助类,不需要挂在任何的游戏对象上。JoystackCc:这是主要来控制摇杆的。挂在JoystackControl节点上PlayerMoveControl:这是主要来通过摇杆来控制角色的。挂在你想控制的物体上直接上代码,写了注释,就不哔哔了。EventTriggerListener.cs[C#] 纯文本查看 复制代码?using UnityEngine;using System.Collections;using UnityEngine.EventSystems;using System.Collections.Generic; /// /// UGUI事件监听类/// public class EventTriggerListener : UnityEngine.EventSystems.EventTrigger{ public delegate void VoidDelegate (GameObject go); public delegate void VectorDelegate(GameObject go, Vector2 delta); public VoidDelegate onClick; public VoidDelegate onDown; public VoidDelegate onEnter; public VoidDelegate onExit; public VoidDelegate onUp; public VoidDelegate onSelect; public VoidDelegate onUpdateSelect; public VectorDelegate onDrag; public VoidDelegate onDragOut; static public EventTriggerListener Get (GameObject go) { if(go==null){ Debug.LogError("EventTriggerListener_go_is_NULL"); return null; } else{ EventTriggerListener listener = go.GetComponent(); if (listener == null) listener = go.AddComponent(); return listener; } } public override void OnDrag(PointerEventData eventData) { if (onDrag != null) onDrag(gameObject, eventData.delta); } public override void OnEndDrag(PointerEventData eventData) { if (onDragOut != null) onDragOut(gameObject); } public override void OnPointerClick(PointerEventData eventData) { if(onClick != null) onClick(gameObject); } public override void OnPointerDown (PointerEventData eventData){ if(onDown != null) onDown(gameObject); } public override void OnPointerEnter (PointerEventData eventData){ if(onEnter != null) onEnter(gameObject); } public override void OnPointerExit (PointerEventData eventData){ if(onExit != null) onExit(gameObject); } public override void OnPointerUp (PointerEventData eventData){ if(onUp != null) onUp(gameObject); } public override void OnSelect (BaseEventData eventData){ if(onSelect != null) onSelect(gameObject); } public override void OnUpdateSelected (BaseEventData eventData){ if(onUpdateSelect != null) onUpdateSelect(gameObject); }}JoystackCc.cs[C#] 纯文本查看 复制代码?using UnityEngine;using System.Collections; public class JoystackCc : MonoBehaviour { private Vector3 Origin; Transform mTrans; private Vector3 _deltaPos; private bool _drag = false; private Vector3 deltaPosition; float dis; [SerializeField] private float MoveMaxDistance = ; //最大拖动距离 [HideInInspector] public Vector3 FiexdMovePosiNorm; //固定8个角度移动的距离 [HideInInspector] public Vector3 MovePosiNorm; //标准化移动的距离 [SerializeField] private float ActiveMoveDistance = 1; //激活移动的最低距离 void Awake() { EventTriggerListener.Get(gameObject).onDrag = OnDrag; EventTriggerListener.Get(gameObject).onDragOut = OnDragOut; EventTriggerListener.Get(gameObject).onDown = OnMoveStart; } // Use this for initialization void Start () { Origin = transform.localPosition; //设置原点 mTrans = transform; } // Update is called once per frame void Update() { dis = Vector3.Distance(transform.localPosition, Origin); //拖动距离,这不是最大的拖动距离,是根据触摸位置算出来的 if (dis >= MoveMaxDistance) //如果大于可拖动的最大距离 { Vector3 vec = Origin &#; (transform.localPosition - Origin) * MoveMaxDistance / dis; //求圆上的一点:(目标点-原点) * 半径/原点到目标点的距离 transform.localPosition = vec; } if (Vector3.Distance(transform.localPosition, Origin) > ActiveMoveDistance) //距离大于激活移动的距离 { MovePosiNorm = (transform.localPosition - Origin).normalized; MovePosiNorm = new Vector3(MovePosiNorm.x, 0, MovePosiNorm.y); } else MovePosiNorm = Vector3.zero; } void MiouseDown() { if ((Input.touchCount > 0 && Input.GetTouch(0).phase == TouchPhase.Moved)) { } else mTrans.localPosition = Origin; } Vector3 result; private Vector3 _checkPosition(Vector3 movePos, Vector3 _offsetPos) { result = movePos &#; _offsetPos; return result; } void OnDrag(GameObject go, Vector2 delta) { if (!_drag) { _drag = true; } _deltaPos = delta; mTrans.localPosition &#;= new Vector3(_deltaPos.x, _deltaPos.y, 0); } void OnDragOut(GameObject go) { _drag = false; mTrans.localPosition = Origin; if (PlayerMoveControl.moveEnd != null) PlayerMoveControl.moveEnd(); } void OnMoveStart(GameObject go) { if (PlayerMoveControl.moveStart != null) PlayerMoveControl.moveStart(); }}PlayerMoveControl.cs[C#] 纯文本查看 复制代码?using UnityEngine;using System.Collections; public class PlayerMoveControl : MonoBehaviour { private Transform _mTransform; public JoystackCc _mJoystackCc; public float moveSpeed = ; public delegate void MoveDelegate(); public static MoveDelegate moveEnd; public static MoveDelegate moveStart; public static PlayerMoveControl Instance; // Use this for initialization void Awake() { Instance = this; _mTransform = transform; moveEnd = OnMoveEnd; moveStart = OnMoveStart; } void Start () { } void OnMoveEnd() { _turnBase = false; } void OnMoveStart() { _turnBase = true; } // Update is called once per frame private float angle; private bool _turnBase = false; void Update() { if (_turnBase) { Vector3 vecMove = _mJoystackCc.MovePosiNorm*Time.deltaTime*moveSpeed/; _mTransform.localPosition&#;=vecMove; angle = Mathf.Atan2 (_mJoystackCc.MovePosiNorm.x, _mJoystackCc.MovePosiNorm.z) * Mathf.Rad2Deg - ; _mTransform.localRotation = Quaternion.Euler(Vector3.up*angle); } }}建好这三个类之后,把他们绑定到相应的节点上。都挂在哪,代码上面有写测试一下,威恩新建了一个cube来作为测试对象,加了个plane作为“伪”地面,太黑了再打个灯….下面是测试效果: 如果有任何问题直接留言~尽自己所能帮忙解决~

推荐整理分享uGUI实现遥感(unet遥感图像分割),希望有所帮助,仅作参考,欢迎阅读内容。

uGUI实现遥感(unet遥感图像分割)

文章相关热门搜索词:opencv处理遥感影像,opencv遥感图像处理,yolo遥感图像检测,遥感envi,unet遥感图像分割,遥感envi,遥感图像获取,遥感图像获取,内容如对您有帮助,希望把文章链接给更多的朋友!

手游频繁崩溃”闪退”? 从程序上找原因 手游频繁崩溃闪退?从程序上找原因作为玩家,当游戏crash的时候是什么心情,如果这个游戏玩起来还不错的话,那我可能还会打开第二次,如果这个游

一款已上市MMO手游地图同步方案总结 1.客户端地图子的相关知识在2.5D的MMO游戏里,角色是通过3D的方式渲染,2D的地图是通过2D的方式显示,所以在客户端一般会有三个坐标系:a)3D坐标系:

设计战斗引导剧情(欢迎探讨) 需求:为已完成的战斗模块,增加一个新手引导,当条件成立时,激活事件。根据策划给出的文案分析事件:主要是战斗过程中插入对话/操作引导(1)

标签: unet遥感图像分割

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

上一篇:<Unity UGUI>使用c#反射实现UGUI文本显示的国际化

下一篇:手游频繁崩溃”闪退”? 从程序上找原因(手游频繁崩溃怎么解决)

  • 企业所得税是含税价还是不含税价
  • 证券交易计税依据
  • 个体工商户怎么申请开普票
  • 装修费用应该计入什么科目
  • 存货是根据总账科目计算填列吗
  • 应付利息增加会计分录
  • 特殊性税务处理所得税怎么算
  • 原始投资额包括资本化利息吗
  • 增值税发票可以抵扣多少
  • 支付货款订金入什么科目核算与会计分录
  • 税审需要什么资料和材料
  • 增值税普票收款人
  • 补充养老保险税前扣除政策
  • 体检发票开公司还是个人
  • 新个税法规定的专项扣除包括住房公积金
  • 子公司代母公司支付费用
  • 退票费报销凭证可以在机子上打印吗
  • 会计速动比率计算公式
  • 小型微利企业需要满足的条件
  • 新版edge浏览器设置背景图片
  • 存货跌价准备借贷方表示的含义
  • linux命令top作用
  • thinkphp5.0自定义路由
  • 期间损益的科目
  • PHP:pg_field_type_oid()的用法_PostgreSQL函数
  • 应付职工薪酬的借方和贷方
  • 利用漏洞每天获利万元
  • php常用字符串
  • php ucwords() 函数将字符串中每个单词的首字符转换为大写(实现代码)
  • 定时器计数器实验报告
  • 公司客户招待费用标准
  • Code For Better 谷歌开发者之声——使用谷歌浏览器 Chrome 更好地调试
  • 导入vue.js
  • 应收账款和应付账款都是负数
  • 库存商品盘亏计入哪个科目
  • 企业分期收款的账务处理
  • 小规模纳税人减免增值税会计处理
  • mysql数据库的设计与实现
  • 增值税税率为零的有哪些项目
  • 如何理解当期损益
  • 让渡资产使用权属于收入吗
  • 工会支付职工福利费做账
  • 长期应收款计提减值
  • 成品油发票的六个问答
  • 企业选择的短期调整
  • 消费税直接计入销售额吗
  • 冲销上年多计提费用
  • 弃置费用预计负债的会计处理
  • 施工项目部主要职责
  • 工会经费教育经费计提比例
  • 接受捐赠财产净价值属于所有者权益吗
  • 暂估入账错误了怎么办
  • 保证合同的要件
  • 进口关税如何交
  • 免征的附加税怎么做账
  • 行政事业单位负责人应当对本单位内部控制
  • 成本与费用的区别联系
  • 商业企业批发商是什么
  • windows锁定用户
  • 因为你的策略组阻止
  • windows2.0下载
  • ubuntuiso
  • 远程关机对话框怎么打开
  • win7系统本身会占用多少空间
  • windows网络诊断在哪
  • 2021年win10累积更新
  • windows7的word
  • win7thin
  • Win10 Redstone 14295更新推送:QQ会不时崩溃
  • win8玩游戏
  • cocos2dx schedule
  • nodejs npm install全局安装和本地安装的区别
  • dos help命令
  • fiori开发
  • js跨域解决方案
  • 举例说明jquery的功能
  • 票种核定和税种核定的区别
  • 发票专用章和公章编码一样吗
  • 契税和耕地占用税由谁负责征收
  • 车险包括车船费吗
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设