通知表示板

スタジオの入退室通知機能を使って入退室情報を表示するサンプルです

UnityPackage

通知表示板

スクリプト

main.lua
print("通知表示板 v1.0")
 
-- 行数
local lineSize = 12
 
-- テキストの配列
local arr = {}
 
-- 配列を初期化
for i = 1, lineSize do
    arr[i] = ""
end
 
-- テキストを追加する
function addText(text)
 
    -- テキストの位置をシフト
    for i = 0, lineSize - 2 do
        arr[lineSize-i] = arr[lineSize-i-1]
    end
 
    -- 最新のテキストをトップに
    arr[1] = text
 
    -- テキストを合成
    for i = 2, lineSize do
        text = text..'\n'..arr[i]
    end
 
    -- テキストを表示
    vci.assets._ALL_SetText("Text", text)
end
 
-- 通知受信
function onMessage(sender, name, message)
    local text
 
    if message == 'joined' then
        text = sender.name..'さんが入室しました。'
    elseif message == 'left' then
        text = sender.name..'さんが退室しました。'
    end
 
    print(text)
 
    if vci.assets.IsMine then
        addText(text)
    end
end
 
-- 通知を購読する
vci.message.On('notification', onMessage)
 
-- テスト用のダミー通知
function test()
    for i = 1, 50 do
        local sender = { name='てすと'..i }
        local message = 'joined'
        if i % 2 == 0 then
            message = 'left'
        end
        onMessage(sender, 'notification', message)
    end
end
 
-- テストコードを実行する
test()