【游戏技术群】959392658  【游戏出海群】12067810
游戏蛮牛 手机端
开启辅助访问
 找回密码
 注册帐号

扫一扫,访问微社区

问答求助

关注:579

当前位置:游戏蛮牛 技术专区 问答求助

_____________________________________________________________________________________________________________
问答求助版块规则:

  1、问题尽量描述清楚
      2、代码要放在代码块里
      3、附件最好放到云盘,然后把链接放到TXT文档里,上传TXT文档。【最好没有附件,你懂得】
      4、本版块回复不得无意义,如:顶、呵呵、不错......以及擦边!【真的会扣分的哦】严重者,封IP!
      5、问题得到解决,请选择最佳答案。
      6、若问题是你自己解决了,可以联系管理员,返还蛮牛币,写下你的答案,另有蛮牛币奖赏。
_____________________________________________________________________________________________________________
查看: 306|回复: 7

[技术讨论] 角色切换有关的

[复制链接]  [移动端链接]
2初来乍到
110/150
排名
14484
昨日变化
9

3

主题

14

帖子

110

积分

Rank: 2Rank: 2

UID
257176
好友
0
蛮牛币
22
威望
0
注册时间
2017-11-30
在线时间
37 小时
最后登录
2019-3-12
发表于 2019-1-11 09:13:57 | 显示全部楼层 |阅读模式
15蛮牛币
本帖最后由 小时三郎 于 2019-1-11 11:17 编辑

我想在每个模型下面加个圆环,当一开始的人物进入到圆环的范围,圆环就类似于进度条那样充能,充满之后切换角色,人物退出去圆环的充能慢慢减少,我就想问一下这个圆环怎么实现?求详细的解释 类似的效果也行 求大佬


回复

使用道具 举报

2初来乍到
110/150
排名
14484
昨日变化
9

3

主题

14

帖子

110

积分

Rank: 2Rank: 2

UID
257176
好友
0
蛮牛币
22
威望
0
注册时间
2017-11-30
在线时间
37 小时
最后登录
2019-3-12
 楼主| 发表于 2019-1-11 10:05:21 | 显示全部楼层
求大佬们给个解决方法

回复

使用道具 举报

2初来乍到
110/150
排名
14484
昨日变化
9

3

主题

14

帖子

110

积分

Rank: 2Rank: 2

UID
257176
好友
0
蛮牛币
22
威望
0
注册时间
2017-11-30
在线时间
37 小时
最后登录
2019-3-12
 楼主| 发表于 2019-1-11 11:19:24 | 显示全部楼层
粒子特效能出来这样的效果吗?

回复

使用道具 举报

5熟悉之中
584/1000
排名
4850
昨日变化
26

8

主题

85

帖子

584

积分

Rank: 5Rank: 5

UID
252255
好友
0
蛮牛币
552
威望
0
注册时间
2017-11-2
在线时间
191 小时
最后登录
2019-3-19
发表于 2019-1-11 13:37:39 | 显示全部楼层
楼主,你说的这个感觉和技能CD遮罩差不多的感觉

回复

使用道具 举报

排名
64876
昨日变化
24

0

主题

8

帖子

45

积分

Rank: 1

UID
233216
好友
2
蛮牛币
21
威望
0
注册时间
2017-7-20
在线时间
35 小时
最后登录
2019-3-6
发表于 2019-1-11 16:40:53 | 显示全部楼层
你找两张圆形的图片 一张放在另外一张上,把前面那张给缩小一点点,然后调整后面那张图片的Image Type 为Filled  然后旋转就好了啊

回复

使用道具 举报

排名
64876
昨日变化
24

0

主题

8

帖子

45

积分

Rank: 1

UID
233216
好友
2
蛮牛币
21
威望
0
注册时间
2017-7-20
在线时间
35 小时
最后登录
2019-3-6
发表于 2019-1-11 16:42:12 | 显示全部楼层
你找两张圆形的图片 一张放在另外一张上,把前面那张给缩小一点点,然后调整后面那张图片的ImageType为Filled 然后旋转就好了啊

回复

使用道具 举报

排名
64876
昨日变化
24

0

主题

8

帖子

45

积分

Rank: 1

UID
233216
好友
2
蛮牛币
21
威望
0
注册时间
2017-7-20
在线时间
35 小时
最后登录
2019-3-6
发表于 2019-1-11 16:43:37 | 显示全部楼层
你找两张圆形的图片 一张放在另外一张上,把前面那张给缩小一点点,然后调整后面那张图片的ImageType为Filled 然后旋转就好了啊

回复

使用道具 举报

6蛮牛粉丝
1270/1500
排名
3181
昨日变化
17

1

主题

172

帖子

1270

积分

Rank: 6Rank: 6Rank: 6

UID
66162
好友
5
蛮牛币
1254
威望
0
注册时间
2015-1-6
在线时间
617 小时
最后登录
2019-3-19
发表于 2019-1-11 17:15:41 | 显示全部楼层
之前照的 3.jpg 直接用:
1.jpg     2.jpg   



[C#] 纯文本查看 复制代码
using UnityEngine;
using UnityEngine.UI;

public class DrawSquald : MaskableGraphic
{
    [SerializeField]
    Texture m_Texture;

    [Range(0, 1)]
    [SerializeField]
    private float fillAmount;

    public float FillAmount
    {
        get { return fillAmount; }
        set
        {
            fillAmount = value;

            // This detects a change and sets the vertices dirty so it gets updated 
            //这会检测到一个更改,并将顶点设置为脏,以便它被更新
            SetVerticesDirty();
        }
    }

    //是否填充
    public bool fill = true;
    //圆弧厚度
    public int thickness = 5;

    //分段
    [Range(0, 360)]
    public int segments = 360;

    public override Texture mainTexture
    {
        get
        {
            return m_Texture == null ? s_WhiteTexture : m_Texture;
        }
    }



    /// <summary>
    /// Texture to be used.
    /// </summary>
    public Texture texture
    {
        get { return m_Texture; }

        set
        {
            if (m_Texture == value)
                return;
            m_Texture = value;
            SetVerticesDirty();
            SetMaterialDirty();
        }
    }

    // Using arrays is a bit more efficient 使用数组更有效率
    UIVertex[] uiVertices = new UIVertex[4];
    Vector2[] uvs = new Vector2[4];
    Vector2[] pos = new Vector2[4];

    protected override void Start()
    {
        uvs[0] = new Vector2(0, 1);
        uvs[1] = new Vector2(1, 1);
        uvs[2] = new Vector2(1, 0);
        uvs[3] = new Vector2(0, 0);
    }





    protected override void OnPopulateMesh(VertexHelper vh)
    {
        float outer = -rectTransform.pivot.x * rectTransform.rect.width;
        float inner = -rectTransform.pivot.x * rectTransform.rect.width + thickness;

        float degrees = 360f / segments;
        int fa = (int)((segments + 1) * this.fillAmount);

        // Updated to new vertexhelper
        vh.Clear();



        // Changed initial values so the first polygon is correct when circle isn't filled
        float x = outer * Mathf.Cos(0);
        float y = outer * Mathf.Sin(0);
        Vector2 prevX = new Vector2(x, y);

        // Changed initial values so the first polygon is correct when circle isn't filled
        x = inner * Mathf.Cos(0);
        y = inner * Mathf.Sin(0);
        Vector2 prevY = new Vector2(x, y);

        for (int i = 0; i < fa - 1; i++)
        {
            // Changed so there isn't a stray polygon at the beginning of the arc
            //改变了,所以在圆弧的开头没有一个杂散多边形
            float rad = Mathf.Deg2Rad * ((i + 1) * degrees);
            float c = Mathf.Cos(rad);
            float s = Mathf.Sin(rad);


            pos[0] = prevX;
            pos[1] = new Vector2(outer * c, outer * s);

            if (fill)
            {
                pos[2] = Vector2.zero;
                pos[3] = Vector2.zero;
            }
            else
            {
                pos[2] = new Vector2(inner * c, inner * s);
                pos[3] = prevY;
            }

            // Set values for uiVertices
            for (int j = 0; j < 4; j++)
            {
                uiVertices[j].color = color;
                uiVertices[j].position = pos[j];
                uiVertices[j].uv0 = uvs[j];
            }

            // Get the current vertex count
            int vCount = vh.currentVertCount;

            // If filled, we only need to create one triangle
            vh.AddVert(uiVertices[0]);
            vh.AddVert(uiVertices[1]);
            vh.AddVert(uiVertices[2]);

            // Create triangle from added vertices
            vh.AddTriangle(vCount, vCount + 2, vCount + 1);

            // If not filled we need to add the 4th vertex and another triangle
            if (!fill)
            {
                vh.AddVert(uiVertices[3]);
                vh.AddTriangle(vCount, vCount + 3, vCount + 2);
            }

            prevX = pos[1];
            prevY = pos[2];
        }
    }
}


回复

使用道具 举报

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

本版积分规则

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