zoukankan      html  css  js  c++  java
  • UGUI简易摇杆

    实现

    1. 直接使用系统自带圆形控件图标
    2. 编写脚本, 实现UGUI拖拽事件
    3. 将多拽范围限定于给定半径和圆心的圆内
    4. 计算出等同于Input.GetAxis()的值,直接控制被控制物体

    代码

    using System.Collections;
    using System.Collections.Generic;
    using UnityEngine;
    using UnityEngine.EventSystems;
    
    public class MyJoystick : MonoBehaviour, IDragHandler, IPointerUpHandler, IEndDragHandler
    {
        public float Radius = 100f;
        private Vector2 center;
        private RectTransform rectTransform;
        // Use this for initialization
        void Start()
        {
            rectTransform = GetComponent<RectTransform>();
            center = rectTransform.position;
        }
    
    
        public void OnDrag(PointerEventData eventData)
        {
            Vector2 vPos = eventData.position;
            var distance = Vector2.Distance(vPos, center);
            if (distance > Radius)
            {
                vPos = (vPos - center).normalized * Radius + center;
            }
            rectTransform.position = new Vector3(vPos.x, vPos.y, 0);
    
            // if (TTMove)
            // {
            //     var npos = (vPos - center) / Radius;
            //     TTMove.forwardInput = npos.y;
            //     TTMove.turnInput = npos.x;
            // }
        }
    
        public void OnPointerUp(PointerEventData eventData)
        {
            rectTransform.position = new Vector3(center.x, center.y, 0);
            // if (TTMove)
            //     TTMove.forwardInput = TTMove.turnInput = 0;
        }
    
        public void OnEndDrag(PointerEventData eventData)
        {
            rectTransform.position = new Vector3(center.x, center.y, 0);
            // if (TTMove)
            //     TTMove.forwardInput = TTMove.turnInput = 0;
        }
    }

    把脚本挂到

    <wiz_tmp_tag id="wiz-table-range-border" contenteditable="false" style="display: none;">

  • 相关阅读:
    短视频不为人知的素材来源 以及平台推荐的黑盒机制
    说什么月入几万 我是不是应该一头撞死?
    Python 3 进阶 —— 使用 PyMySQL 操作 MySQL
    CentOS安装Subversion 1.9.*版本客户端
    [算法]PHP随机合并数组并保持原排序
    CentOS安装Memcached
    Git Windows客户端保存用户名和密码
    ApiGen 4.0配置项
    ApiGen安装
    SQL服务器模式
  • 原文地址:https://www.cnblogs.com/CloudLiu/p/10138445.html
Copyright © 2011-2022 走看看