开启辅助访问
 找回密码
 注册帐号

扫一扫,访问微社区

项目源码

关注:1053

当前位置:游戏蛮牛 资源专区 项目源码

查看: 406|回复: 9

[Unity] 摇杆与小地图的制作

[复制链接]  [移动端链接]
排名
17514
昨日变化
1022

1

主题

10

帖子

39

积分

Rank: 1

UID
199237
好友
0
蛮牛币
23
威望
0
注册时间
2017-1-5
在线时间
12 小时
最后登录
2017-2-22
发表于 2017-1-5 17:51:10 | 显示全部楼层 |阅读模式

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

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

x
//使用接口(IDragHandler,IEndDragHandler)与角色控制器(CharacterController)实现摇杆控制与物体的移动
using UnityEngine.UI;
using UnityEngine.EventSystems;
//1.使用接口
public class JockStick : MonoBehaviour,IDragHandler,IEndDragHandler {//右键自动生成
    //遥杆起始位置
    private Vector3 origin;
    private CharacterController player;
    //半径
    public float radius=40;
    //角色移动速度
    public float moveSpeed=2f;
        // Use this for initialization
        void Start () {
        origin = transform.position;
        //Debug.Log("起始坐标"+origin);
        player = GameObject.FindWithTag("Player").GetComponent<CharacterController>();
    }
       
        // Update is called once per frame
        void Update () {
        //玩家移动方向
        Vector3 playerMove_dir = transform.position - origin;
        //屏幕xy转为3Dxz坐标
        playerMove_dir = new Vector3(playerMove_dir.x, 0, playerMove_dir.y);
        //角色移动
        PlayerMove(playerMove_dir);
    }
    void PlayerMove(Vector3 dir)
    {
        player.SimpleMove(dir * moveSpeed * Time.deltaTime);
    }
    public void OnDrag(PointerEventData eventData)//2.实现接口
    {
        //计算遥杆与圆盘中心的距离
        float distance = Vector3.Distance(Input.mousePosition, origin);
        //如果在圆盘内
        if (distance <= radius)
        {
            //遥杆位置==鼠标位置
            transform.position = Input.mousePosition;
        }
        else
        {
            //获取方向向量
            Vector3 dir = Input.mousePosition - origin;
            //归一化
            dir.Normalize();
            //求出方向为dir,距离为radius的坐标
            dir*= radius;
            //将向量起点移动到圆盘中心
            dir += origin;
            //将摇杆移动至此
            transform.position = dir;
        }
    }
    public void OnEndDrag(PointerEventData data)//2.实现接口
    {
        //结束拖拽,摇杆回到原始位置
        transform.position = origin;
    }
}


回复

使用道具 举报

2初来乍到
144/150
排名
15939
昨日变化
12

0

主题

106

帖子

144

积分

Rank: 2Rank: 2

UID
187889
好友
0
蛮牛币
111
威望
0
注册时间
2016-11-29
在线时间
18 小时
最后登录
2017-2-8
发表于 2017-1-6 12:21:30 | 显示全部楼层
有工程吗?

回复

使用道具 举报

排名
17514
昨日变化
1022

1

主题

10

帖子

39

积分

Rank: 1

UID
199237
好友
0
蛮牛币
23
威望
0
注册时间
2017-1-5
在线时间
12 小时
最后登录
2017-2-22
 楼主| 发表于 2017-1-10 17:04:33 | 显示全部楼层
有啊,你用百度云账号么

回复 支持 反对

使用道具 举报

7日久生情
1530/5000
排名
4527
昨日变化
44

2

主题

1070

帖子

1530

积分

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

UID
182740
好友
0
蛮牛币
2001
威望
0
注册时间
2016-11-10
在线时间
256 小时
最后登录
2017-2-22
发表于 2017-1-27 13:27:49 | 显示全部楼层
谢谢楼主分享~

回复

使用道具 举报

5熟悉之中
663/1000
排名
9189
昨日变化
139

0

主题

488

帖子

663

积分

Rank: 5Rank: 5

UID
189581
好友
0
蛮牛币
671
威望
0
注册时间
2016-12-5
在线时间
105 小时
最后登录
2017-2-22
发表于 2017-2-6 13:44:35 | 显示全部楼层
给力  强大

回复 支持 反对

使用道具 举报

2初来乍到
108/150
排名
12395
昨日变化
332

1

主题

37

帖子

108

积分

Rank: 2Rank: 2

UID
164643
好友
0
蛮牛币
134
威望
0
注册时间
2016-8-29
在线时间
34 小时
最后登录
2017-2-21
发表于 2017-2-8 14:11:24 | 显示全部楼层
太好了 666
[发帖际遇]: hututu1122 乐于助人,奖励 2 蛮牛币. 幸运榜 / 衰神榜

回复

使用道具 举报

3偶尔光临
205/300
排名
7332
昨日变化
94

0

主题

56

帖子

205

积分

Rank: 3Rank: 3Rank: 3

UID
188779
好友
0
蛮牛币
7
威望
0
注册时间
2016-12-2
在线时间
47 小时
最后登录
2017-2-22
发表于 2017-2-8 17:32:45 | 显示全部楼层
iohdfoaiwhjdia

回复

使用道具 举报

排名
43461
昨日变化
168

0

主题

16

帖子

36

积分

Rank: 1

UID
127658
好友
0
蛮牛币
6
威望
0
注册时间
2015-11-2
在线时间
19 小时
最后登录
2017-2-22
发表于 2017-2-9 14:48:34 | 显示全部楼层
谢谢分享!

回复

使用道具 举报

2初来乍到
116/150
排名
11807
昨日变化
289

0

主题

46

帖子

116

积分

Rank: 2Rank: 2

UID
196217
好友
0
蛮牛币
105
威望
0
注册时间
2016-12-26
在线时间
28 小时
最后登录
2017-2-22
发表于 2017-2-10 09:59:01 | 显示全部楼层
楼主工程方不方便给一下?

回复 支持 反对

使用道具 举报

排名
17514
昨日变化
1022

1

主题

10

帖子

39

积分

Rank: 1

UID
199237
好友
0
蛮牛币
23
威望
0
注册时间
2017-1-5
在线时间
12 小时
最后登录
2017-2-22
 楼主| 发表于 7 天前 | 显示全部楼层
渔樵01 发表于 2017-2-10 09:59
楼主工程方不方便给一下?

可以啊,你有云账号么

回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册帐号

本版积分规则

快速回复 返回顶部 返回列表