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

  • 相关阅读:
    初识lunece(同义词检索)
    初识IKAnalyzer
    初识springmvc_01
    初识mybatis_03 一级缓存和二级缓存
    初识mybatis_02 基于注解实现增删改查
    初识mybatis_01
    Javascript中的this指向问题
    JS中的深拷贝与浅拷贝
    移动端1像素边框问题
    css的一些知识点的总结(四)
  • 原文地址:https://www.cnblogs.com/CloudLiu/p/10138445.html
Copyright © 2020-2023  润新知