新宝娱乐城官方打不开: 菠萝哥哥 游戏开发 之 MMORPG摇杆功能 - lua

127
回复
5104
查看
打印 上一主题 下一主题
  [ 复制链接 ]
排名
634
昨日变化

新宝娱乐城博彩打不开 www.sl6cl.com.cn 18

主题

332

帖子

2310

积分

Rank: 9Rank: 9Rank: 9

UID
13110
好友
12
蛮牛币
4898
威望
0
注册时间
2014-1-21
在线时间
596 小时
最后登录
2019-5-23

专栏作家认证开发者

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?注册帐号

x
本帖最后由 菠萝哥哥 于 2018-7-23 18:51 编辑
因为游戏需要热更新,所以要用Lua实现功能,这就很蛋疼(ToLua)


界面 - 摇杆是不固定位置的



目录结构
m_ResponseRegion_btn  在区域内点击 摇杆底盘会飞到点击位置 继续拖拽
m_Direction_btn              是底盘

m_Ride_btn                     摇杆   还要支持点击上马功能



策略就是 c#只负责发送事件 ,lua接受事件 并做逻辑处理.

c# 方面
m_ResponseRegion_btn 绑定 UIJoystackArea.cs 脚本
[C#] 纯文本查看 复制代码
using UnityEngine;
using UnityEngine.UI;
using UnityEngine.EventSystems;

namespace UISystem
{
    public class UIJoystackArea : MonoBehaviour, IDragHandler, IPointerDownHandler, IPointerUpHandler
    {
        public UIJoystack m_UIJoystack;

        public void OnDrag(PointerEventData data)
        {
            m_UIJoystack.OnDrag(data);
        }

        public void OnPointerUp(PointerEventData data)
        {
            m_UIJoystack.OnPointerUp2(data);
        }

        public void OnPointerDown(PointerEventData data)
        {
            m_UIJoystack.OnPointerDown2(data,this.gameObject);
        }
    }
}



m_Ride_btn   绑定  UIJoystack.cs 脚本
游客,如果您要查看本帖隐藏内容请回复




c# 发送事件后 lua方面

[Golang] 纯文本查看 复制代码
using UnityEngine;
using UnityEngine.EventSystems;

namespace UISystem
{
    public class UIJoystack :  MonoBehaviour, IPointerClickHandler, IPointerDownHandler, IDragHandler, IEndDragHandler, IBeginDragHandler
    {
        private const string UI_EVENT_JOYSTACK_ON_DRAGING = "UI_EVENT_JOYSTACK_ON_DRAGING";
        private const string UI_EVENT_JOYSTACK_BEGIN_DRAG = "UI_EVENT_JOYSTACK_BEGIN_DRAG";
        private const string UI_EVENT_JOYSTACK_END_DRAG = "UI_EVENT_JOYSTACK_END_DRAG";
        private const string UI_EVENT_JOYSTACK_Click = "UI_EVENT_JOYSTACK_Click";

        //底盘初始位置
        private Vector2 BoderInitialPos;
        //底盘半径
        public float Raidus = 0.0f;
        //底盘
        public RectTransform boder;

        //拖动数据
        private Vector2 _dragdata;         

        //摇杆初始位置
        private Vector3 OriginPos;

        public Vector3 Dir;
        //事件
        public delegate void OnEventHandler(string eventId, float x, float y, float z);
        public OnEventHandler onJoystackEventHandler = null;

        private bool isDrag = false;
        private bool isClick = true;

        public void SetEventHandler(OnEventHandler handler)
        {
            onJoystackEventHandler = handler;
        }

        private void SendEvent(string eventID, Vector3 dir)
        {
            if (this.onJoystackEventHandler != null)
            {
                this.onJoystackEventHandler(eventID, dir.x, dir.y, dir.z);
            }
        }

        public void Start()
        {
            OriginPos = transform.localPosition;
            Raidus = boder.sizeDelta.x / 2;
            BoderInitialPos = boder.localPosition;
        }

        public void OnDisable()
        {
            transform.localPosition = OriginPos;
            Dir = Vector3.zero;
            if (isDrag)
            {
                SendEvent("UI_EVENT_JOYSTACK_END_DRAG", Dir);
            }
        }

        /// <summary>
        /// 拖动
        /// </summary>
        /// <param name="data"></param>
        public void OnDrag(PointerEventData data)
        {
            isClick = false;
            _dragdata += data.delta;
            Drag(_dragdata);
            SendEvent("UI_EVENT_JOYSTACK_ON_DRAGING", Dir);
        }

        public void Drag(Vector2 data)
        {
            transform.localPosition = OriginPos + new Vector3(data.x, data.y, 0);
            var distance = Vector3.Distance(transform.localPosition, OriginPos);
            if (distance > Raidus)
            {
                transform.localPosition = Vector3.Lerp(OriginPos, transform.localPosition, Raidus / distance);
            }
            Dir = (transform.localPosition - OriginPos).normalized;
        }

        /// <summary>
        /// 摇杆被点击
        /// </summary>
        /// <param name="data"></param>
        public void OnPointerClick(PointerEventData data)
        {
            if (isClick == false)
            {
                return;
            }
            Dir = Vector3.zero;
            //SendEvent("UI_EVENT_JOYSTACK_END_DRAG", Dir);
            SendEvent(UI_EVENT_JOYSTACK_Click, Dir);          
        }

        /// <summary>
        /// 底盘位移按下-开始拖动
        /// </summary>
        /// <param name="data"></param>
        public void OnPointerDown2(PointerEventData data,GameObject go)
        {
            isDrag = true;
            _dragdata = Vector2.zero;
     
            Vector2 pos;
            if (RectTransformUtility.ScreenPointToLocalPointInRectangle(go.transform as RectTransform,
                data.position, data.pressEventCamera, out pos))
            {
                boder.localPosition = pos;
            }
            SendEvent("UI_EVENT_JOYSTACK_BEGIN_DRAG", Dir);
        }

        /// <summary>
        /// 开始拖动
        /// </summary>
        /// <param name="data"></param>
        public void OnPointerDown(PointerEventData data)
        {
            //isDrag = true;
            //_dragdata = Vector2.zero;
            //SendEvent("UI_EVENT_JOYSTACK_BEGIN_DRAG", Dir);
        }

        /// <summary>
        /// 底盘位移抬起
        /// </summary>
        /// <param name="eventData"></param>
        public void OnPointerUp2(PointerEventData eventData)
        {
            //Debug.LogError("1 - OnPointerUp");
            boder.gameObject.transform.localPosition = BoderInitialPos;
            transform.localPosition = OriginPos;
            isDrag = false;
            isClick = true;
            SendEvent("UI_EVENT_JOYSTACK_END_DRAG", Dir);
        }

        /// <summary>
        /// 结束拖动
        /// </summary>
        /// <param name="eventData"></param>
        public void OnEndDrag(PointerEventData data)
        {
            //Debug.LogError("2 - OnEndDrag");
            transform.localPosition = OriginPos;
            isDrag = false;
            isClick = true;
            SendEvent("UI_EVENT_JOYSTACK_END_DRAG", Dir)
        }

        public void OnBeginDrag(PointerEventData data)
        {
            //transform.localPosition = OriginPos;
            isDrag = true;
            isClick = false;
            _dragdata = Vector2.zero;
            SendEvent("UI_EVENT_JOYSTACK_BEGIN_DRAG", Dir);
        }

    }
}



事件调用4个方法
[Golang] 纯文本查看 复制代码
local JoyEventHandler =
{
    ["UI_EVENT_JOYSTACK_BEGIN_DRAG"] = UIMainPanel_m_JoyStack_BeginDrag,  //开始拖动
    ["UI_EVENT_JOYSTACK_ON_DRAGING"] = UIMainPanel_m_JoyStack_Draging,    
    ["UI_EVENT_JOYSTACK_END_DRAG"] = UIMainPanel_m_JoyStack_EndDrag,     //停止拖动   
    ["UI_EVENT_JOYSTACK_Click"] = UIMainPanel_PlayerMount,                 //点击上马
}

function UIMainPanel_Controller_JoyStackEvent(eventID,x , y, z)
    if JoyEventHandler[eventID] ~= nil then
        JoyEventHandler[eventID](x,y,z)
    end
end




游客,如果您要查看本帖隐藏内容请回复








5熟悉之中
675/1000
排名
3998
昨日变化

3

主题

66

帖子

675

积分

Rank: 5Rank: 5

UID
183706
好友
0
蛮牛币
918
威望
0
注册时间
2016-11-18
在线时间
230 小时
最后登录
2019-5-24
沙发
2018-7-20 11:35:57 只看该作者
7日久生情
1714/5000
排名
1771
昨日变化

2

主题

225

帖子

1714

积分

Rank: 7Rank: 7Rank: 7Rank: 7

UID
237394
好友
0
蛮牛币
147
威望
0
注册时间
2017-8-13
在线时间
737 小时
最后登录
2019-5-25
板凳
2018-7-20 11:52:25 只看该作者
厉害了我的哥
3偶尔光临
260/300
排名
8329
昨日变化

0

主题

42

帖子

260

积分

Rank: 3Rank: 3Rank: 3

UID
281485
好友
0
蛮牛币
597
威望
0
注册时间
2018-5-16
在线时间
72 小时
最后登录
2019-5-20
地板
2018-7-20 12:11:43 只看该作者
感谢楼主分享
7日久生情
3249/5000
排名
321
昨日变化

1

主题

405

帖子

3249

积分

Rank: 7Rank: 7Rank: 7Rank: 7

UID
2219
好友
1
蛮牛币
9141
威望
0
注册时间
2013-8-19
在线时间
1005 小时
最后登录
2019-5-25
5#
2018-7-20 13:15:39 只看该作者
seeeseee看看
排名
39857
昨日变化

0

主题

1

帖子

10

积分

Rank: 1

UID
282382
好友
0
蛮牛币
31
威望
0
注册时间
2018-5-23
在线时间
3 小时
最后登录
2018-9-18
6#
2018-7-20 14:06:45 只看该作者
找了  好久的  虚拟摇杆 终于找到了  太好了  感谢楼主分享
7日久生情
2548/5000
排名
848
昨日变化

14

主题

180

帖子

2548

积分

Rank: 7Rank: 7Rank: 7Rank: 7

UID
157377
好友
4
蛮牛币
5649
威望
0
注册时间
2016-7-19
在线时间
1176 小时
最后登录
2019-5-24
7#
2018-7-20 14:25:47 只看该作者
6666666666666666666666666666666
5熟悉之中
761/1000
排名
4414
昨日变化

2

主题

122

帖子

761

积分

Rank: 5Rank: 5

UID
252095
好友
1
蛮牛币
592
威望
0
注册时间
2017-11-2
在线时间
305 小时
最后登录
2019-4-11
8#
2018-7-20 14:31:12 只看该作者
不过的学习资料
5熟悉之中
711/1000
排名
4267
昨日变化

3

主题

157

帖子

711

积分

Rank: 5Rank: 5

UID
243239
好友
0
蛮牛币
1772
威望
0
注册时间
2017-9-13
在线时间
207 小时
最后登录
2019-4-28
9#
2018-7-20 14:40:30 只看该作者
7日久生情
3949/5000
排名
226
昨日变化

0

主题

854

帖子

3949

积分

Rank: 7Rank: 7Rank: 7Rank: 7

UID
15165
好友
2
蛮牛币
306
威望
0
注册时间
2014-2-21
在线时间
1025 小时
最后登录
2019-5-24
QQ
10#
2018-7-20 15:10:35 只看该作者
谢谢分享谢谢分享谢谢分享谢谢分享
3偶尔光临
289/300
排名
6887
昨日变化

2

主题

13

帖子

289

积分

Rank: 3Rank: 3Rank: 3

UID
213857
好友
0
蛮牛币
266
威望
0
注册时间
2017-3-23
在线时间
84 小时
最后登录
2018-9-4
11#
2018-7-20 15:44:25 只看该作者
6666666666666
4四处流浪
438/500
排名
8243
昨日变化

0

主题

225

帖子

438

积分

Rank: 4

UID
281167
好友
1
蛮牛币
883
威望
0
注册时间
2018-5-14
在线时间
65 小时
最后登录
2018-12-10
12#
2018-7-20 19:20:48 只看该作者
感谢分享
6蛮牛粉丝
1445/1500
排名
1569
昨日变化

0

主题

46

帖子

1445

积分

Rank: 6Rank: 6Rank: 6

UID
175786
好友
0
蛮牛币
2091
威望
0
注册时间
2016-10-15
在线时间
577 小时
最后登录
2019-4-25
13#
2018-7-20 21:52:19 只看该作者
不错不错?。。。?!
5熟悉之中
876/1000
排名
2502
昨日变化

0

主题

66

帖子

876

积分

Rank: 5Rank: 5

UID
231194
好友
0
蛮牛币
2843
威望
0
注册时间
2017-7-10
在线时间
226 小时
最后登录
2019-3-12
14#
2018-7-21 08:28:38 只看该作者
谢谢分享
7日久生情
1862/5000
排名
1192
昨日变化

0

主题

546

帖子

1862

积分

Rank: 7Rank: 7Rank: 7Rank: 7

UID
87577
好友
0
蛮牛币
6839
威望
0
注册时间
2015-3-31
在线时间
338 小时
最后登录
2019-5-25
15#
2018-7-21 08:47:20 只看该作者
too good too strong!
您需要登录后才可以回帖 登录 | 注册帐号

本版积分规则

  • 赵孟頫:书法大师是怎么炼成的? 2019-05-26
  • 环境保护腰杆硬起来(在习近平新时代中国特色社会主义思想指引下——新时代新作为新篇章) 2019-05-26
  • 阳泉市旅发委对全市挂牌督办建设项目进行督导 2019-05-25
  • 苹果-热门标签-华商生活 2019-05-25
  • 图片故事:人民日报编辑部的一天 2019-05-24
  • 人民日报评论员:共创中华民族伟大复兴的美好未来 2019-05-24
  • 女性之声——全国妇联 2019-05-23
  • 中国智能手机在东南亚受追捧 2019-05-22
  • 一语惊坛(5月10日):半岛和平,是中朝两国的共同愿望。 2019-05-22
  • 董卿白岩松朱广权 看看央视主持人大学就读啥院系 2019-05-21
  • 邓超陈冠希焦恩俊,刷新娱乐圈女儿奴新高度 2019-05-21
  • 紫光阁中共中央国家机关工作委员会 2019-05-20
  • 四个跌停后 金洲慈航不惜食言也要选择如此停牌自救 2019-05-19
  • 无论是否想怀孕 这串数字女性要知道 2019-05-18
  • 机遇与挑战并存 中国企业“走出去”行稳致远 2019-05-17
  • 636| 281| 454| 808| 767| 623| 177| 76| 415| 687|