using DG.Tweening;
using System;
using System.Collections;
using System.Collections.Generic;
using TMPro;
using UnityEngine;
using UnityEngine.EventSystems;
public class PlayerCardDirector : MonoBehaviour, IPointerEnterHandler, IPointerExitHandler
{
GameDirector gameDirector;
GameObject Mana;
GameObject Hp;
GameObject Attack;
GameObject Name;
GameObject Effect;
GameObject Tribe;
public Sprite[] cardSprite = new Sprite[100];
public int index = 0; //1๋ฒ๋ถํฐ 10๋ฒ๊น์ง๋ค
bool isPointerDown = false;
void Start()
{
gameDirector = GameObject.Find("GameDirector").GetComponent<GameDirector>();
Mana = transform.GetChild(0).gameObject;
Hp = transform.GetChild(1).gameObject;
Attack = transform.GetChild(2).gameObject;
Name = transform.GetChild(3).gameObject;
Effect = transform.GetChild(4).gameObject;
Tribe = transform.GetChild(5).gameObject;
transform.position = new Vector3(5, 0, 0);
if(int.Parse(gameDirector.sentence[gameDirector.playerHandCard[index - 1], 1]) < 4)
{
Mana.transform.Translate(0, 0.1f, 0);
Hp.transform.Translate(0, 0.1f, 0);
Attack.transform.Translate(0, 0.1f, 0);
Name.transform.Translate(0, 0.1f, 0);
Effect.transform.Translate(0, 0.1f, 0);
Tribe.transform.Translate(0, 0.1f, 0);
}
if (int.Parse(gameDirector.sentence[gameDirector.playerHandCard[index - 1], 2]) == 2)
{
Name.transform.rotation = Quaternion.Euler(0, 0, 0);
Effect.transform.Translate(0, -0.1f, 0);
Tribe.transform.Translate(0, -0.1f, 0);
Hp.GetComponent<TextMeshPro>().enabled = false;
Attack.GetComponent<TextMeshPro>().enabled = false;
}
}
void Update()
{
if(isPointerDown)
{
transform.rotation = Quaternion.Euler(0, 0, 0);
transform.position = new Vector3(transform.position.x, 0, 0);
}
else
{
transform.Translate((new Vector3(1 * (index - (gameDirector.playerHandCard.Count + 1) / 2.0f), -4.5f -0.2f * Math.Abs(index - (gameDirector.playerHandCard.Count + 1) / 2.0f), 0) - transform.position) / 30.0f);
transform.DORotate(new Vector3(0, 0, -10 * (index - (gameDirector.playerHandCard.Count + 1) / 2.0f)), 1);
}
GetComponent<SpriteRenderer>().sprite = cardSprite[gameDirector.playerHandCard[index - 1] - 1];
//GetComponent<SpriteRenderer>().sortingLayerName = "Cards";
GetComponent<SpriteRenderer>().sortingOrder = index * 10;
Mana.GetComponent<TextMeshPro>().text = gameDirector.playerHandCardMana[index - 1].ToString();
Mana.GetComponent<MeshRenderer>().sortingLayerName = "Cards";
Mana.GetComponent<MeshRenderer>().sortingOrder = index * 10 + 1;
Hp.GetComponent<TextMeshPro>().text = gameDirector.playerHandCardHp[index - 1].ToString();
Hp.GetComponent<MeshRenderer>().sortingLayerName = "Cards";
Hp.GetComponent<MeshRenderer>().sortingOrder = index * 10 + 2;
Attack.GetComponent<TextMeshPro>().text = gameDirector.playerHandCardAttack[index - 1].ToString();
Attack.GetComponent<MeshRenderer>().sortingLayerName = "Cards";
Attack.GetComponent<MeshRenderer>().sortingOrder = index * 10 + 3;
Name.GetComponent<TextMeshPro>().text = gameDirector.sentence[gameDirector.playerHandCard[index - 1], 0];
Name.GetComponent<MeshRenderer>().sortingLayerName = "Cards";
Name.GetComponent<MeshRenderer>().sortingOrder = index * 10 + 4;
Effect.GetComponent<TextMeshPro>().text = gameDirector.sentence[gameDirector.playerHandCard[index - 1], 6];
Effect.GetComponent<MeshRenderer>().sortingLayerName = "Cards";
Effect.GetComponent<MeshRenderer>().sortingOrder = index * 10 + 5;
Tribe.GetComponent<TextMeshPro>().text = gameDirector.sentence[gameDirector.playerHandCard[index - 1], 7];
Tribe.GetComponent<MeshRenderer>().sortingLayerName = "Cards";
Tribe.GetComponent<MeshRenderer>().sortingOrder = index * 10 + 6;
}
public void OnPointerEnter(PointerEventData eventData)
{
isPointerDown = true;
Debug.Log("๋ง์ฐ์ค ์ค๋ฒ");
}
public void OnPointerExit(PointerEventData eventData)
{
isPointerDown = false;
}
}
์คํฌ๋ฆฝํธ๋ ์์ ์๋๋๋ก์
๋ง์ฐ์ค๊ฐ ์นด๋ ์์ ์ฌ๋ผ๊ฐ์ ๋ ์นด๋๊ฐ ํฌ๊ฒ ๋์์ผํ๋๋ฐ ๊ทธ๊ฒ ์ ๋๋ ์ค์
Debug.Log๋ ์ ๋ธ
ํน์ ๋ง์ฐ์ค ์ค๋ฒ ์ด๋ฒคํธ๊ฐ ์๋๋์ง ์๋ ๊ฒฝ์ฐ๊ฐ ์์ผ๋ฉด ์ค๋ช ํด์ฃผ๋ฉด ์ ๋ง์ ๋ง ๊ฐ์ฌํ ๋ฏ
๋๊ทธ ์ด๋ฏธ์ง ํน์ sprite ์ raycast ์๋๋๋์ง ํ์ธํ๊ฑฐ๋ ์์ ์ค๋ธ์ ํธ์ ์ค๋ณต๋๋์ง ํ์ธํ๋ ?
SpriteRenderer๋ผ์ raycast ์์ฒด๊ฐ ์ ๋ณด์ด๊ณ ํ๋ฆฌํน(๋ณต์ ๋ณธ)์. ์์ ์ค๋ธ์ ํธ์ ๋ฎํ ๊ฒ ๊ฐ์ง๋ ์์๋ฐ...
UI์ฉ ์ด๋ฒคํธ๋ฅผ ๊ฒ์ ํ๋ฆฌํน์ ๋ฐ์๋
UI์ฉ ์ด๋ฒคํธ์? UI๊ฐ ์๋๋ผ์ ์ ๋๊ตฌ๋... ๊ทธ๋ผ ์ด๋ป๊ฒ ํด์ผ ๋จ?
์ด๋ฏธ์ง๋ฅผ ๊ฒ์ ์ฌ์ ๋ฃ๊ณ ๊ทธ๋ค์ ์คํฌ๋ฆฝํธ๋ฅผ ๋ฃ์๋ค์์ ํฌ์ธํฐ์ด๋ฒคํธ ์จ๋ด
ํด๊ฒฐํ์ ใณใณ OnMouseOver ์ฐ๊ณ ์ฝ๋ผ์ด๋ ๋ฌ์์ฃผ๋ฉด ๋๋ค
์ ๊ฑฐ ๋ค ๋ณด๊ธด ์ข ๋์ํ๋ฐ unity mouse hover event ๋ผ๊ณ ์ณ๋ณด๋ฉด ์๋ฌธ์๋ฃ ๋์ฌ๊ฑฐ์
์ฐพ์์ ใณใณ ์ฝ๋ผ์ด๋ ์ค์นํ๊ณ OnMouseOVer ์ฐ๋ฉด ๋๋ค