버튼에 애니메이션을 실행(Play)시킬 때 발생하는 문제가 하나 있었다.


같은 버튼을 계속 누를 때 최초 1회만 애니메이션이 재생되고, 그 이후 두번 다시 Play되지 않은 문제였다.

 

그래서 틀렸을 때 흔들리는 애니메이션이 1번만 보여지고 그 이후는 무반응이므로 뭔가 어색하게 되었다.


오브젝트를 껐다가 켜야하나 생각도 해보고 구글을 찾아봤지만 한국어 검색으로는 비슷한 문제가 발견되지 않았다.


그래서 형편없는 영어 실력으로 영어 검색을 시작했다.


검색어 : unity animator play once reset


그결과 유니티 커뮤니티에서 어떤 한 외국인님이 나와 완전히 동일한 문제를 질문했고, 답을 얻을 수 있었다.


생각보다 별 것 아니었다. 몰라서 못 쓴 것이지만,,]


내가 사용했던 Play("AnimationName"); 에서 확장된...아니 오버로딩된



public void Play(string stateName, int layer = -1, float normalizedTime = float.NegativeInfinity);


을 사용하라고 한다.



아래 코드가 내가 사용한 기본적인 코드이다. 이렇게 하면 플레이는 된다.


buttonObject.GetComponent<Animator>().Play("ButtonWrong");


하지만,


buttonObject.GetComponent<Animator>().Play("ButtonWrong", -1, 0f);



첫 번째 매개변수 : stateName

두 번째 매개변수 : layer

세 번쨰 매개변수 :normalizedTime


첫 번쨰 매개변수로는 Play할 애니메이션 state의 이름을 적는다.


두 번째 매개변수로는 layer를 설정한다. -1일 경우 첫 state를 재생한다.


세 번째 매개변수로는 normalizedTime를 적는다.


normalizedTime란,


표준화된(normalized) 애니메이션 시간아다. 


값 1은 애니메이션의 끝을 의미하며 값 0.5는 애니메이션의 중간을 의미한다.


Posted by sungho88
,

버튼을 눌렀을 때, 버튼음을 집어넣었다.


그런데, 버튼을 빠르게 누르면 누른 횟수대로 사운드가 재생된다.


어떻게 이 문제를 해결할까?


1. PlayOneShot()함수 앞에 Stop()함수를 먼저 실행한다.


--> 안 된다. 짧아서 그런지 몰라도 .


매우 간단하게 해결 할 수 있다.


바로,


isPlaying을 잘 사용하면 된다.


public AudioSource soundSource;
public AudioClip[] sound;

if (soundSource && sound[3])
if (soundSource.GetComponent<AudioSource>().isPlaying) return;
else soundSource.GetComponent<AudioSource>().PlayOneShot(sound[3]);


핵심은 isPlaying을 사용하는 것이다.


만약(if)현재 플레이 중이라면 return 즉, 아무것도 진행하지 말라는 의미이며,


그렇지 않다면(=플레이 중이 아니라면else) PlayOneShot을 사용하여 1회 플레이하라는 의미이다.


이렇게하면 버튼을 미친듯이 눌러도 이벤트는 발생하지만 isPlaying에 막혀 사운드는 출력되지 않는다.


이상으로 버튼 사운드 중복될 때 해결 방법을 알아봤다.

Posted by sungho88
,


고려산 위치는 강화도 중심에 있다.


마니산이 유명한데, 고려산도 진달래로 유명하다.




2018년 04월 14일 ~ 04월 22일까지 진행된다.


진달래꽃보러 사당역에 07시 도착해서 버스를 타고 이동했다.


강화도... 거리 비해 많이 걸렸다. 강화도 초입부터 차가 막히기 시작했다.


어쨋든 등산 시작!


좀 실망했다. 진달래가 없어! 앙상한 가지만 잔뜩. 실망하며 1시간 올라갔다.


오...정상엔 진달래가 나름 많이 피어있었다. 그리고 진달래와 함께 사람들이 비례적으로 나타나기 시작했다.


세 갈래길에서 병목현상이 일어나기 시작했다. 와 사람 사람 이렇게 사람 많은 건 처음 봤다.


오 우...이게 축제의 현장인가~~~




쭉 그냥 이동하면 오래 안 걸리겠지만... 구경하고 사진찍느라 움직일 생각이 없다.


빠르게 이동할 생각도 없었기때문에 더 지연시키며 천천히 걸었다.


빠르게 빡시게 등산하려면 다른산을 추천한다.


이제 진달래 축제인만큼 사진 투척~~~




우와 우와하면서 만족하고 있는데... 몇 번 온 사람이 이건 많이 핀 것도 아니라고 한다...


난 이정도만 봐도 만족하므로 재밌었다.


산행을 했으니 먹으러 출발~


강화도에 왔으니 강화도 풍물시장에 가보자~


벤뎅이 회가 유명하다고 하니 먹어보자. 벤뎅이~~


(벤뎅이 회)

(벤뎅이 무침)

벤뎅이 구이


각각 23,000원이지만, 세트로 먹으면 4인기준 50,000원에 먹을 수 있다!



마무리는 칼국수로!

Posted by sungho88
,