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;">

  • 相关阅读:
    网络流二十四题之魔术球问题
    网络流二十四题之P2764 最小路径覆盖问题
    网络二十四题 之 P2756 飞行员配对方案问题
    网络流 之 dinic算法
    网络流 之 增广路
    中南
    2249: Altruistic Amphibians 01背包的应用 + lh的简单图论 图转树求lca
    今日训练 搜索
    AD-logon workstation
    Centos7-docker安装
  • 原文地址:https://www.cnblogs.com/CloudLiu/p/10138445.html
Copyright © 2011-2022 走看看