수박게임 재개발일지 3편
쓸 제목이 없다 빨리 따라와
일단 시작하기 전에 구글측에서
또 귀찮게 하는 이메일이 왔길래
확인하다가 발견한 귀여운 학교 마스코트
저번 시간에 캡슐을 생성하고
떨어뜨리는 것 까지 진행을 했었다
오늘은 drop할 때 부모를 옮겨주고
새롭게 캡슐을 업데이트, merge까지 해보겠다
일단 지금은 부모가 계속 Claw(갈고리)에
고정되어있는 상태이다
그렇게 되면 부모인 갈고리가 움직이면
자식인 캡슐도 같이 움직이게 된다는 뜻이다
EndDrag에서 캡슐들을 모아놓는 빈 객체
capsuleGroup으로 부모를 옮겨주기로 했다
그리고 부모를 옮기면
현재 캡슐은 null로 비워두고
Invoke를 이용해 1초 뒤에
UpdateCapsule을 호출해주었다
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Capsule : MonoBehaviour
{
public CapsuleID capsuleID;
// Start is called before the first frame update
void Start()
{
}
// Update is called once per frame
void Update()
{
}
private void OnCollisionEnter2D(Collision2D other)
{
var capsuleComponent = other.gameObject.GetComponent<Capsule>();
if (capsuleComponent != null)
{
if (capsuleID == capsuleComponent.capsuleID)
{
Debug.Log("같음");
}
}
}
}
그리고 이건 옛날 코드랑 동일한데
Capsule Component를 객체에 연결해주고
동일한 capsuleID를 갖고 있다면
테스트로 "같음"을 출력하게 해주었다
주황색 캡슐에 주황색 캡슐이 닿으니
정상적으로 "같음"이 출력된걸 확인했다
근데 왜 2번 출력되냐고?
내가 맞았으면 쟤도 맞은거니까
재밌는건 Log를 봐도 알겠지만
동시에 부딪혔어도 정말 간발의
차로 내가 먼저 부딪혔어!가 정해지기에
그걸 이용해서 둘이 부딪혀도
머지는 한번만 부르게 해주었다
이 부분은 옛날 코드 그냥 가져다가 씀
이전과 달라진 부분이라면
바로 Merge 부분이 아닐까 싶다
전에는 CapsuleData를 이용해서
다음 객체를 반환하게 했었나 그랬는데
아니 뭔 CapsuleID,CapsuleData..
들고 있는게 쓰잘대기 없이 많길래
CapsuleID를 이용해서 다음 레벨의
객체를 반환하는 내용을 새로 추가하여 연결했다
Prefab Rigidbody는 Static이기에 생성하고
Dynamic으로 바꿔줬다
주황색이 부딪혀서 다음 레벨의 객체인
노란색 캡슐이 생성된걸 확인했다