ユーザ用ツール

サイト用ツール


vci:sample:material:light

色とアニメ切替ライト



サンプルデータ:https://seed.online/items/a98f174dfe1d3f41e9c2752922b72dca0aafa7d66dce8c46352852739dd52cf9

UnityPackage: tutorial_light.zip

色と光の形状を変更できるライトです。
色と光それぞれの状態を共有変数を定義することで、ユーザー間で同期するようになっています。
ライトの先端黒い部分をonUseするとライトの光が拡縮アニメーションをします。
ライトの後方白い部分をonUseするとライトの色が変化します。


main.lua
local state=0 --0みじかい 1ながい
local color_state=0 --0 白   他 色の状態
local to_color = Color.__new(1,0,0,1)--オリジナルカラー
 
 
function onUse(use)
    --同期処理--------------------------------
    if vci.state.Get("STATE")==nil then--状態 stateの同期
        vci.state.Set("STATE",state)
    else
        state=vci.state.Get("STATE")--グリップ時に共通変数で同期取得
    end
 
    if vci.state.Get("COLOR_STATE")==nil then--状態 light_stateの同期
        vci.state.Set("COLOR_STATE",color_state)
    else
        color_state=vci.state.Get("COLOR_STATE")--グリップ時に共通変数で同期取得
    end
 
    --光の形状の状態------ベース部分を掴んだ場合の処理---------------
    if use=="light_forstage" then
    print("base_grab_OK")---------------
        if state==0 then
            vci.assets._ALL_PlayAnimationFromName("light_long",false)
            state=1
            vci.state.Set("STATE",state)
        elseif state==1 then
            vci.assets._ALL_PlayAnimationFromName("light_short",false)
            state=0
            vci.state.Set("STATE",state)
        end
    end
 
    --ライトコントローラーを掴んだ場合の処理-------------------------
    if use=="light_controller" then
        color_state=color_state+1
        print("light_grab_OK")---------------
        if color_state>7 then
            color_state=0--オリジナルカラーに
        end
        vci.state.Set("COLOR_STATE",color_state)--同期
 
        if color_state==0 then
            to_color = Color.__new(1,1,1,0.2)--オリジナルカラー
            vci.assets._ALL_SetMaterialColorFromName ("light_light",to_color)
            vci.assets._ALL_SetMaterialColorFromName ("light_noshadow",to_color)
            elseif color_state==1 then
                to_color = Color.__new(1,0,0,0.2)--red
                vci.assets._ALL_SetMaterialColorFromName ("light_light",to_color)
                vci.assets._ALL_SetMaterialColorFromName ("light_noshadow",to_color)
                elseif color_state==2 then
                    to_color = Color.__new(1,0.65,0,0.2)--orange
                    vci.assets._ALL_SetMaterialColorFromName ("light_light",to_color)
                    vci.assets._ALL_SetMaterialColorFromName ("light_noshadow",to_color)
                    elseif color_state==3 then
                        to_color = Color.__new(1,1,0,0.2)--yellow
                        vci.assets._ALL_SetMaterialColorFromName ("light_light",to_color)
                        vci.assets._ALL_SetMaterialColorFromName ("light_noshadow",to_color)
                            elseif color_state==4 then
                            to_color = Color.__new(0,0.5,0,0.2)--green
                            vci.assets._ALL_SetMaterialColorFromName ("light_light",to_color)
                            vci.assets._ALL_SetMaterialColorFromName ("light_noshadow",to_color)
                                elseif color_state==5 then
                                to_color = Color.__new(0,1,1,0.2)--blue
                                vci.assets._ALL_SetMaterialColorFromName ("light_light",to_color)
                                vci.assets._ALL_SetMaterialColorFromName ("light_noshadow",to_color)
                                    elseif color_state==6 then
                                    to_color = Color.__new(0,0,1,0.2)--indigo
                                    vci.assets._ALL_SetMaterialColorFromName ("light_light",to_color)
                                    vci.assets._ALL_SetMaterialColorFromName ("light_noshadow",to_color)
                                        elseif color_state==7 then
                                        to_color = Color.__new(0.5,0,0.5,0.2)--violet
                                        vci.assets._ALL_SetMaterialColorFromName ("light_light",to_color)
                                        vci.assets._ALL_SetMaterialColorFromName ("light_noshadow",to_color)
                                            else
                                                ----何もしない
 
        end
    end-----------
end
vci/sample/material/light.txt · 最終更新: 2019/05/27 21:00 by navana

ページ用ツール