ユーザ用ツール

サイト用ツール


vci:sample:lerpmotion

lerpを使ったAからB地点への移動



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

UnityPackage: tutorial_lerp.zip

lerpを使用してA地点からB地点までN秒かけてなめらかに移動するサンプルです。
今回はアイテムをonUseした場所をA地点としています。4秒かけてB地点(0,1,0)へと移動します。


main.lua
local framevalue = vci.me.Time.TotalSeconds
local framestart = 0
 
local sub = vci.assets.GetSubItem("Sub")
 
local pointA = Vector3.__new(0,1,0)--A地点
local pointB = Vector3.__new(0,1,0)--B地点
 
local pointnow =Vector3.zero
 
local moveflag = 0
local distance = 0.01 --この距離以下になったら停止
 
function updateAll()
    if moveflag==1 then
        framevalue = (vci.me.Time.TotalSeconds-framestart)/4 --この場合は4秒かけて移動
        --A地点からB地点まで補間してN秒間で移動
        pointnow = Vector3.Lerp(pointA,pointB,framevalue)
        sub.SetLocalPosition(pointnow)
 
        if Vector3.Magnitude(sub.GetLocalPosition()-pointB)<distance then
            moveflag=0
        end
    end
end
 
 
function onUse(use)
    --onUseした点をA地点として指定
    framestart = vci.me.Time.TotalSeconds
    pointA = sub.GetLocalPosition()
    moveflag = 1
end
vci/sample/lerpmotion.txt · 最終更新: 2019/05/27 20:59 by navana

ページ用ツール