游戏蛮牛学习群(纯技术交流,不闲聊):159852603
游戏蛮牛 手机端
开启辅助访问
 找回密码
 注册帐号

扫一扫,访问微社区

蛮牛译馆

关注:638

当前位置:游戏蛮牛 技术专区 蛮牛译馆

查看: 2921|回复: 29

[Unity教程] Unity C#实现对象的莫斯电码闪烁

[复制链接]  [移动端链接]
排名
9278
昨日变化
6

263

主题

301

帖子

1556

积分

Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15

UID
159865
好友
9
蛮牛币
3981
威望
0
注册时间
2016-8-1
在线时间
626 小时
最后登录
2018-3-8

蛮牛译员

发表于 2017-9-29 14:29:55 | 显示全部楼层 |阅读模式

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

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

x
Unity C#实现对象的莫斯电码闪烁


C#脚本设置对象在Morse Code的时间节奏下的Active / Inactive【闪烁】,如下所示:


Unity_C_Flashing_Object_In_Morse_Code.gif







[C#] 纯文本查看 复制代码
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
// © 2017 TheFlyingKeyboard
// theflyingkeyboard.net
public class FlashInMorseCode : MonoBehaviour {
    [SerializeField] private float dotTime;
    [SerializeField] private GameObject objectToUse;
    [SerializeField] private bool flashOnStart = false;
    [SerializeField] private bool repeat = false;
    [TextAreaAttribute(4, 15)]
    [SerializeField] private string textToShow;
    private float dashTime;
    private char[] letters = { ' ', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', '1', '2', '3', '4', '5', '6', '7', '8', '9', '0' };
    private string[] morseLetters = { "    ", ". ___", "___ . . .", "___ . ___ .", "___ . .", ".", ". . ___ .", "___ ___ .", ". . . .", ". .", ". ___ ___ ___", "___ . ___", ". ___ . .", "___ ___", "___ .", "___ ___ ___", ". ___ ___ .", "___ ___ . ___", ". ___ .", ". . .", "_", ". . ___", ". . . ___", ". ___ ___", "___ . . ___", "___ . ___ ___", "___ ___ . .", ". ___ ___ ___ ___", ". . ___ ___ ___", ". . . ___ ___", ". . . . ___", ". . . . .", "___ . . . .", "___ ___ . . .", "___ ___ ___ . .", "___ ___ ___ ___ .", "___ ___ ___ ___ ___" };
    private void Start()
    {
        if (flashOnStart)
        {
            StartCoroutine(Flash(objectToUse, textToShow, dotTime));
        }
    }
    private IEnumerator Flash(GameObject objectToFlash, string textToConvert, float timeOfDot)
    {
        string textInMorse = "";
        ConvertTextToMorseCode(textToConvert, out textInMorse);
        for (int i = 0; i < textInMorse.Length; i++)
        {
            if (textInMorse[i] == ' ')
            {
                objectToFlash.SetActive(false);
                yield return 0;
                yield return new WaitForSeconds(timeOfDot);
            }
            else if (textInMorse[i] == '.')
            {
                objectToFlash.SetActive(true);
                yield return 0;
                yield return new WaitForSeconds(timeOfDot);
            }
            else if(textInMorse[i] == '_')
            {
                objectToFlash.SetActive(true);
                yield return 0;
                yield return new WaitForSeconds(timeOfDot * 3.0f);
            }
            if (repeat)
            {
                if(i == textInMorse.Length - 1)
                {
                    i = 0;
                }
            }
        }
    }   
    private void ConvertTextToMorseCode(string textToConvert, out string convertedText)
    {
        convertedText = "";
        textToConvert = textToConvert.ToLower();
        for (int i = 0; i < textToConvert.Length; i++)
        {
            for (short j = 0; j < 37; j++)
            {
                if (textToConvert[i] == letters[j])
                {
                    convertedText += morseLetters[j];
                    convertedText += "   ";
                    break;
                }
            }
        }
    }
    public void WriteText(GameObject newObject = null, string newTextToShow = null, float newDotTime = -1.0f)
    {
        if (newObject != null && newTextToShow != null && newDotTime > 0.0f)
        {
            StartCoroutine(Flash(newObject, newTextToShow, newDotTime));
            return;
        }
        if (newObject != null && newTextToShow != null)
        {
            StartCoroutine(Flash(newObject, newTextToShow, dotTime));
            return;
        }
        if (newObject != null && newDotTime > 0.0f)
        {
            StartCoroutine(Flash(newObject, textToShow, newDotTime));
            return;
        }
        if (newTextToShow != null && newDotTime > 0.0f)
        {
            StartCoroutine(Flash(objectToUse, newTextToShow, newDotTime));
            return;
        }
        if (newTextToShow != null)
        {
            StartCoroutine(Flash(objectToUse, newTextToShow, dotTime));
            return;
        }
        if (newDotTime > 0.0f)
        {
            StartCoroutine(Flash(newObject, textToShow, newDotTime));
            return;
        }
    }
}














原文标题:Unity C# Flashing Object In Morse Code
原文链接:https://www.unrealengine.com/en-US/blog/how-to-add-global-shaders-to-ue4



回复

使用道具 举报

7日久生情
3721/5000
排名
1357
昨日变化
2

0

主题

2025

帖子

3721

积分

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

UID
94526
好友
0
蛮牛币
1873
威望
0
注册时间
2015-4-22
在线时间
840 小时
最后登录
2018-9-18
发表于 2017-9-29 15:24:52 | 显示全部楼层
感谢楼主分享

回复

使用道具 举报

7日久生情
4272/5000
排名
2460
昨日变化
9

5

主题

3110

帖子

4272

积分

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

UID
209186
好友
5
蛮牛币
5413
威望
0
注册时间
2017-3-1
在线时间
617 小时
最后登录
2018-9-18
发表于 2017-9-29 16:02:40 | 显示全部楼层
学习收藏了

回复

使用道具 举报

6蛮牛粉丝
1349/1500
排名
2690
昨日变化
2

1

主题

489

帖子

1349

积分

Rank: 6Rank: 6Rank: 6

UID
220310
好友
1
蛮牛币
2304
威望
0
注册时间
2017-5-2
在线时间
359 小时
最后登录
2018-6-13
发表于 2017-9-29 16:04:53 | 显示全部楼层

回复

使用道具 举报

7日久生情
1965/5000
排名
2243
昨日变化
9

7

主题

716

帖子

1965

积分

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

UID
183904
好友
6
蛮牛币
4005
威望
0
注册时间
2016-11-15
在线时间
646 小时
最后登录
2018-9-18
QQ
发表于 2017-9-29 16:27:36 | 显示全部楼层

回复

使用道具 举报

6蛮牛粉丝
1169/1500
排名
4080
昨日变化
1

10

主题

195

帖子

1169

积分

Rank: 6Rank: 6Rank: 6

UID
144091
好友
0
蛮牛币
27
威望
0
注册时间
2016-3-31
在线时间
630 小时
最后登录
2018-9-18
QQ
发表于 2017-9-29 17:13:01 | 显示全部楼层
感谢楼主分享
[发帖际遇]: zhanbufeiyun 捡了钱没交公 蛮牛币 降了 3 . 幸运榜 / 衰神榜

回复

使用道具 举报

7日久生情
2284/5000
排名
2901
昨日变化
6

9

主题

1114

帖子

2284

积分

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

UID
168159
好友
4
蛮牛币
5089
威望
0
注册时间
2016-9-12
在线时间
687 小时
最后登录
2018-9-17
发表于 2017-9-30 10:37:11 | 显示全部楼层
看似很厉害  然而并没有看懂 哈哈哈、、

回复 支持 反对

使用道具 举报

7日久生情
2601/5000
排名
3338
昨日变化
15

2

主题

1801

帖子

2601

积分

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

UID
241666
好友
0
蛮牛币
10246
威望
0
注册时间
2017-9-6
在线时间
382 小时
最后登录
2018-9-18
发表于 2017-10-6 06:31:58 来自Mobile--- | 显示全部楼层
感谢分享

回复

使用道具 举报

排名
29838
昨日变化
16

0

主题

34

帖子

60

积分

Rank: 2Rank: 2

UID
149158
好友
0
蛮牛币
122
威望
0
注册时间
2016-5-19
在线时间
17 小时
最后登录
2018-5-21
发表于 2017-10-10 16:21:37 | 显示全部楼层
收藏了,摩斯电码

回复

使用道具 举报

6蛮牛粉丝
1349/1500
排名
2690
昨日变化
2

1

主题

489

帖子

1349

积分

Rank: 6Rank: 6Rank: 6

UID
220310
好友
1
蛮牛币
2304
威望
0
注册时间
2017-5-2
在线时间
359 小时
最后登录
2018-6-13
发表于 2017-10-18 19:51:48 | 显示全部楼层
很酷

回复

使用道具 举报

7日久生情
1941/5000
排名
1931
昨日变化
6

0

主题

725

帖子

1941

积分

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

UID
148286
好友
0
蛮牛币
3590
威望
0
注册时间
2016-5-11
在线时间
558 小时
最后登录
2018-9-18
发表于 2017-10-24 14:17:15 | 显示全部楼层

回复

使用道具 举报

2初来乍到
146/150
排名
17318
昨日变化
9

3

主题

72

帖子

146

积分

Rank: 2Rank: 2

UID
254054
好友
0
蛮牛币
133
威望
0
注册时间
2017-11-13
在线时间
33 小时
最后登录
2018-1-26
发表于 2017-11-13 22:28:56 | 显示全部楼层

回复

使用道具 举报

4四处流浪
305/500
排名
10388
昨日变化

17

主题

90

帖子

305

积分

Rank: 4

UID
244768
好友
1
蛮牛币
2573
威望
0
注册时间
2017-9-19
在线时间
94 小时
最后登录
2018-9-11
发表于 2017-11-15 10:58:07 | 显示全部楼层

回复

使用道具 举报

排名
224
昨日变化

35

主题

872

帖子

4344

积分

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

UID
6108
好友
17
蛮牛币
4532
威望
0
注册时间
2013-10-22
在线时间
1365 小时
最后登录
2018-9-18

社区QQ达人七夕浪漫情人

QQ
发表于 2017-12-4 15:15:26 | 显示全部楼层
有这么无聊的人?

回复

使用道具 举报

7日久生情
3228/5000
排名
2076
昨日变化
1

0

主题

2115

帖子

3228

积分

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

UID
219676
好友
1
蛮牛币
2409
威望
0
注册时间
2017-7-12
在线时间
489 小时
最后登录
2018-9-18

活力之星

发表于 2017-12-11 11:52:23 | 显示全部楼层
谢谢分享

回复

使用道具 举报

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

本版积分规则

关闭

站长推荐 上一条 /1 下一条

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