Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- raycast
- Euler
- AR게임
- ar
- ExtensionMethod
- Quaternion
- ARProgect
- C#
- 델리게이트
- 확장메서드
- 1인개발
- 게임제작
- 인터페이스
- 게임
- Unity
- 리듬게임에디터
- AR세팅
- 소규모프로젝트
- 레이캐스트
- 게임개발
- 병맛게임
- 유니티
- 리듬게임
- 로케트
- github
- callbyreference
- 깃허브
- AR Foundation
- callbyvalue
- 짐벌락
Archives
- Today
- Total
Ssssong += Dev
[퍼즐게임] WHITE POLYGON - 5 본문
회전 퀘스트에 대해 옵저버 패턴을 적용하였다.
public interface RotateEndObservable
{
public void SubscribeEvent(RotateObserver observer);
public void UnSubscribeEvent(RotateObserver observer);
public void Notify();
}
public interface RotateObserver
{
public void UpdateObserver(Cube cube);
}
이렇게 두 인터페이스를 만들어 두고
회전이 끝날 때에 구독 옵저버의 퀘스트 클리어 함수가 실행되도록 하였다.
public class Cube : RotatableObj, RotateEndObservable
{
[Header("CubeType Object Wall Check")]
[SerializeField]
protected Vector2 wallNBottomNumSetting;
public Vector2 wallNBottomNowState;
public List<RotateObserver> observerList;
public override void Awake()
{
observerList = new List<RotateObserver>();
}
public void SubscribeEvent(RotateObserver observer)
{
observerList.Add(observer);
}
public void UnSubscribeEvent(RotateObserver observer)
{
observerList.Remove(observer);
}
public void Notify()
{
for (int i = 0; i < observerList.Count; i++)
{
observerList[i].UpdateObserver(this);
}
}
//...중략
public virtual void RotateEndCheck()
{
float angle = Quaternion.Angle(gameObject.transform.rotation, m_qTartgetRotation);
if (angle <= 0)
{
//회전 완료
gameObject.transform.rotation = m_qTartgetRotation;
rotateStart = false;
Notify();
}
}
}
회전이 끝난 후 이벤트가 잘 실행된다.
'개발 > WHITE POLYGON' 카테고리의 다른 글
[퍼즐게임] WHITE POLYGON - 7 (0) | 2022.07.28 |
---|---|
[퍼즐게임] WHITEPOLYGON - 6 (0) | 2022.07.24 |
[퍼즐게임] WHITEPOLYGON - 4 (0) | 2022.07.18 |
[퍼즐게임] WHITE POLYGON - 3 (0) | 2022.07.12 |
[퍼즐게임] WHITE POLYGON - 2 (0) | 2022.07.08 |