유니티

MM Touch Button 이용해서 터치하고 있을 때 연속으로 function 실행하기. Long Button 구현

HorseDragon 2023. 5. 31. 00:14

MoreMountain의 Feel 기능인 MM Touch Button을 이용.

계속 터치를 하고 있으면, 해당 function이 반복되어서 실행된다.

하지만 이렇게만 하면, function이 프레임에 한 번씩 실행이 되어서 엄청나게 많이 실행되는 문제가 있음.

사용하려는 funciton (여기서는 skill01PointUp) 에다가 buffer time을 넣어주자.

아래와 같이 startBufferTime만큼의 시간의 buffer를 넣어준다.

참 쉽죠잉?

    public float startBufferTime;
    private float skillUpBufferTime;


    void Update()
    {
        if (skillUpBufferTime <= 0)
        {
            skillUpBufferTime = 0;
            return;            
        }
        else
        {
            skillUpBufferTime -= Time.deltaTime;
        }
    }
    
    public void skill01PointUp()
    {
        if(skillUpBufferTime > 0)
        {
            return;
        }
                
        skillUpBufferTime = startBufferTime;
    }

 

마지막으로 MM Touch Button에 있는 Mouse Mode를 클릭해야, 첫 번째 클릭에서 생기는 버그를 막을 수 있음.

※버그 내용 : 첫번째 터치를 Release 했는데도, 마치 Pressed 된 것처럼 계속 작동함.