// 게임개발 종합반 - 4주차(스파르타코딩클럽)
카드에 랜덤으로 이미지 넣기
- 배열에 숫자를 두쌍씩 집어넣는다.
- 배열를 랜덤으로 섞는다.
- 카드가 생성될 때 배열에서 이미지를 꺼내서 붙여준다
- 배열에 이미지 두장씩 집어넣기
- 먼저 두쌍씩 존재하는 배열 만들기
- 호출은 rtans[i]
int[] rtans = { 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7 };
- 배열 섞기 (System.Linq 에서 OrderBy 를 가져다 쓰자)
- OrderBy(item => Random.Range(-1.0f, 1.0f)) 이 내용이 잘 이해가 되지 않는다.
- 질문후 답변도 올려놓아야 겠다
void Start()
{
int[] rtans = { 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7 };
rtans = rtans.OrderBy(item => Random.Range(-1.0f, 1.0f)).ToArray();
for (int i = 0; i < 16; i++)
{
GameObject newCard = Instantiate(card);
//newCard를 Cards안으로 넣기
newCard.transform.parent = GameObject.Find("Cards").transform;
// (0,1,2,3), (4,5,6,7), (8,9,10,11), (12,13,14,15)
float x = (i / 4) * 1.4f - 2.1f;
float y = (i % 4) * 1.4f - 3.0f;
newCard.transform.position = new Vector3(x, y, 0);
Debug.Log(rtans[i]);
}
}
string rtanName = "rtan" + rtans[i].ToString();
newCard.transform.Find("front").GetComponent<SpriteRenderer>().sprite = Resources.Load<Sprite>(rtanName);
카드에 애니메이션 넣기
- idle, flip animation 레코드
- 바로 작동하므로 Exit Time 해제, transition duration 0
- Booleen parameter isOpen으로 transition 조건을 할당
- card script 넣기
public class card : MonoBehaviour
{
public Animator animator;
public void openCard()
{
animator.SetBool("isOpen", true);
transform.Find("front").gameObject.SetActive(true);
transform.Find("back").gameObject.SetActive(false);
}
}