unity 单击移动
来源:互联网 发布:中国国家标准数据库 编辑:程序博客网 时间:2024/06/16 21:00
使用方式:
StartMove开始移动事件Moveing正在移动事件EndMove结束移动事件
using UnityEngine.EventSystems;using UnityEngine;using System;public enum MouseCode{ LeftButton, RightButton, MiddleButton}public class ClickMove : MonoBehaviour { public bool isCanMove = true; public new Camera camera; public int length = 1000; public float moveSpeed; public float endDistance=0.5f; public string groundFloorName; public MouseCode mouseClick; public delegate void MoveEvent(Vector3 posintion); public event MoveEvent StartMove; public event MoveEvent Moveing; public event MoveEvent EndMove; private Vector3 offset; private Vector3 targetPosition; private RaycastHit info; private bool isMove = false; private Transform myTr = null; private Transform MyTr { get{ return myTr ?? (myTr = transform); } } public void SetTargetPosition(Vector3 position) { isMove = true; targetPosition = position; if (null != StartMove) StartMove(MyTr.position); } private void Update() { if (!isCanMove) return; if (null == camera || string.Empty == groundFloorName) return; if (Input.GetMouseButtonDown((int)mouseClick)) { if(null != EventSystem.current) { if (EventSystem.current.IsPointerOverGameObject()) return; } Ray ray = camera.ScreenPointToRay(Input.mousePosition); if (Physics.Raycast(ray, out info, length, LayerMask.GetMask(groundFloorName))) SetTargetPosition(info.point); } if (isMove) { offset = targetPosition - MyTr.position; MyTr.position += offset.normalized * Time.deltaTime * moveSpeed; if (null != Moveing) Moveing(MyTr.position); if (Vector3.Distance(targetPosition, MyTr.position) <= endDistance) { isMove = false; targetPosition.y = MyTr.position.y; MyTr.position = targetPosition; if (null != EndMove) EndMove(MyTr.position); } } }}
阅读全文
0 0
- unity 单击移动
- unity鼠标单击双击事件
- Coscos2dx3.2鼠标单击移动
- 封装移动端单击事件
- Unity: Unity3D 模拟鼠标单击/双击
- unity 学习 处理一个物体 单击事件
- VB模拟鼠标移动与单击
- 模拟鼠标移动和左键单击
- 如何单击鼠标移动整个窗体
- 鼠标移动,单击表格行变色
- opengl中鼠标移动、单击、滚轮事件
- delphi7模拟鼠标移动和单击功能
- MyWidget MyLabel-- 重写 -- 双击/单击/移动/事件
- Unity:移动游戏新标准?
- Unity 鼠标移动监听
- unity 键盘控制移动
- unity人物移动
- unity移动Mmsdk 笔记
- flash AS3.0中有关于播放控制进度条控制声音的两种模式
- C++类的继承、虚函数
- 设计模式之外观模式
- Matlab连接Mysql
- spark 算子-转化操作
- unity 单击移动
- 古文观止卷七_陈情表_李密
- sqlserver 与VS2012注册码
- TCP三次握手与四次挥手的过程及原因
- scala语法(三)——trait
- Codeforces 816B & 816C & 816D Karen and ......(不正经专场)
- 数据结构笔记——绪论
- 【LeetCode】521 Longest Uncommon Subsequence I
- 【java】自动构建工具Ant的学习