디시인사이드 갤러리

마이너 갤러리 이슈박스, 최근방문 갤러리

갤러리 본문 영역

[🐣질문] 컴포넌트 활성화

ㅇㅇ(182.218) 2024.05.16 22:26:07
조회 154 추천 0 댓글 1
														


아래 코드로 calculatePrefab 활성화 하면

calculatePrefab 오브젝트 컴포넌트가 모두 비활성화로 되는데 

뭐가 문제일까여?ㅠㅠ

계속 몇시간째 해보는데 안대네영ㅠㅠ


using UnityEngine;

using UnityEngine.EventSystems;

using System.Collections;


public class DragUI : MonoBehaviour, IBeginDragHandler, IDragHandler, IEndDragHandler

{

    private RectTransform rectTransform;

    private GameObject dragObject;  // 드래그 중인 복사본 오브젝트

    private RectTransform dragObjectRectTransform;

    private BoxCollider2D dragObjectCollider; // 콜라이더 참조 추가

    private bool isPlaced = false;  // 복사본이 최종적으로 위치에 고정되었는지 여부


    public GameObject calculatePrefab;  // 새로운 프리팹 참조


    void Awake()

    {

        rectTransform = GetComponent<RectTransform>();

    }


    public void OnBeginDrag(PointerEventData eventData)

    {

        if (gameObject.tag == "calculate" && !isPlaced)

        {

            Debug.Log("Drag started with 'calculate'");


            // 프리팹을 사용하여 새로운 오브젝트 생성

            dragObject = Instantiate(calculatePrefab, transform.parent);

            Debug.Log("Instantiated new object: " + dragObject.name);


            // 루트 오브젝트를 강제로 활성화

            dragObject.SetActive(true);


            dragObjectRectTransform = dragObject.GetComponent<RectTransform>();

            dragObjectRectTransform.anchoredPosition = rectTransform.anchoredPosition;

            dragObjectRectTransform.sizeDelta = rectTransform.sizeDelta;

            dragObjectRectTransform.localScale = rectTransform.localScale;


            dragObjectCollider = dragObject.GetComponent<BoxCollider2D>();


            if (dragObjectCollider != null)

            {

                Debug.Log("Before enabling, Collider enabled: " + dragObjectCollider.enabled);

                StartCoroutine(EnableComponentsAfterDelay(dragObject));

            }

            else

            {

                Debug.LogError("No BoxCollider2D component found!");

            }


            dragObjectRectTransform.position = eventData.pointerPressRaycast.worldPosition;

            ObjectManager.Instance.ActivateCalculateObjects(); // 필요한 오브젝트 활성화

        }

    }


    private IEnumerator EnableComponentsAfterDelay(GameObject obj)

    {

        yield return new WaitForEndOfFrame(); // 프레임 끝날 때까지 대기하여 오브젝트가 완전히 초기화되도록 함


        // 모든 컴포넌트를 활성화

        foreach (var component in obj.GetComponents<Component>())

        {

            if (component is Behaviour behaviourComponent)

            {

                behaviourComponent.enabled = true;

                Debug.Log("Enabled component: " + behaviourComponent.GetType().Name);

            }

            else if (component is Collider2D colliderComponent)

            {

                colliderComponent.enabled = true;

                Debug.Log("Enabled component: " + colliderComponent.GetType().Name);

            }

            else if (component is Renderer rendererComponent)

            {

                rendererComponent.enabled = true;

                Debug.Log("Enabled component: " + rendererComponent.GetType().Name);

            }

            // 추가적으로 필요한 컴포넌트에 대한 활성화 코드를 추가할 수 있습니다.

        }


        Debug.Log("Components enabled.");

    }


    public void OnDrag(PointerEventData eventData)

    {

        if (dragObject != null && !isPlaced)  // 고정되지 않은 경우에만 드래그 업데이트

        {

            Vector3 globalMousePos;

            if (RectTransformUtility.ScreenPointToWorldPointInRectangle(dragObjectRectTransform, eventData.position, eventData.pressEventCamera, out globalMousePos))

            {

                dragObjectRectTransform.position = globalMousePos;

            }

        }

    }


    public void OnEndDrag(PointerEventData eventData)

    {

        if (dragObject != null && !isPlaced)

        {

            Collider2D hit = Physics2D.OverlapPoint(dragObjectRectTransform.position);

            if (hit != null && hit.gameObject.CompareTag("on_calculate"))

            {

                // 복사본 위치를 'on_calculate' 오브젝트 위치에 고정

                dragObjectRectTransform.position = hit.transform.position;

                isPlaced = true;  // 복사본 고정

                Debug.Log("Snapped to 'on_calculate' object at position: " + hit.transform.position);

            }

            else

            {

                // 복사본이 적절한 위치에 있지 않으면 파괴

                Destroy(dragObject);

                Debug.Log("Drag object destroyed");

            }

        }

    }



}



자동등록방지

추천 비추천

0

고정닉 0

0

댓글 영역

전체 댓글 0
등록순정렬 기준선택
본문 보기
자동등록방지

하단 갤러리 리스트 영역

왼쪽 컨텐츠 영역

갤러리 리스트 영역

갤러리 리스트
번호 말머리 제목 글쓴이 작성일 조회 추천
2864 설문 비난 여론에도 뻔뻔하게 잘 살 것 같은 스타는? 운영자 24/06/03 - -
2865 AD 호요버스 신작 <젠레스 존 제로> 7월 4일 오픈! 운영자 24/06/05 - -
2866 AD 세상의 패권을 거머쥘 자, 로드나인 사전등록 중 운영자 24/06/05 - -
161634 공지 취.업관련 이야기 금지 [9] 파베르Dev갤로그로 이동합니다. 24.06.05 278 4
159490 공지 인디 게임 개발 갤러리 규칙 - 질문 전 필독!! [25] 에뚜갤로그로 이동합니다. 24.05.10 867 3
52873 공지 게임제작 초심자를 위한 글 모음 [9] Goranic갤로그로 이동합니다. 20.07.02 64382 52
123789 공지 뉴비 개임개발 하려는데 뭐부터 해야하나요 복사본 [14] 흉황갤로그로 이동합니다. 23.04.11 12301 21
161752 🐣질문 유니티 2d 캐릭터 rigidbody 점프가 안되고있음.. [1] 침팬치갤로그로 이동합니다. 18:57 53 0
161751 💬 게임쪽도 경험이 중요하겠지? [5] ㅇㅇ(116.39) 18:43 115 0
161750 💬 인디 게임 개발의 가장 큰 적은 [4] ㅇㅇ(119.193) 18:22 158 0
161749 💬 GPT 3.5는 맨날 구라치고 그래서 신뢰가 안갔는데 [1] 강화인간갤로그로 이동합니다. 18:19 89 0
161748 💬 한국 인디 게임 중엔 창의적인 게임이 별로 없는듯 [10] ㅇㅇ(220.93) 18:15 189 0
161747 💬 안녕하세요. 영상 음악 작곡하고 있는 사람입니다. ㅇㅇ(121.128) 18:02 72 1
161746 💬 돈없는 인디게임 개발자의 모션캡처 (유튜브) [3] 인터넷친구갤로그로 이동합니다. 17:54 133 0
161745 💬 빌드박스 구독할 사람 참고하샘 [1] ㅇㅇ(58.232) 17:51 47 0
161744 💬 매직애로우 라는 게임 만들고있는 놈인데 [27] ㅇㅇ(121.186) 17:43 248 0
161743 🐣질문 여기사람들 전부 굵직한 코드식은 다 외우고있음?? [4] ㅇㅇ(14.47) 17:23 138 1
161741 🐣질문 투자 안받으면 너넨 다 인디로침?? [10] ㅇㅇ갤로그로 이동합니다. 17:10 170 0
161740 💬 Aesprite 할인 자주함? [2] ㅇㅇ(210.100) 17:00 115 0
161739 💬 성공하고십따 [8] ㅇㅇ(180.231) 16:43 236 9
161738 💬 서양권에서 터진 게임은 얼추 3개월안에 한국에 상륙하네 [5] ㅆㅇㅆ(124.216) 16:38 236 5
161737 🐣질문 게임 엔진 추천부탁드립니다! [13] ㅇㅇ(112.152) 16:34 121 0
161736 💬 너티독, E3, 도쿄게임쇼에 관한 이야기 ㅇㅇ(112.159) 16:28 54 0
161735 💬 솔직히 슬더스가 언더테일보다 더 성공하지 않았냐 [7] 우라백사도갤로그로 이동합니다. 16:26 176 0
161734 💬 포켓로그 2달전에 해외에서 이야기나왔는데 경향 타임즈에서 오늘 언급됐네 [5] ㅆㅇㅆ(124.216) 16:23 143 0
161733 💬 근데 덱빌딩이라고 하면 [4] 쇼핑카트갤로그로 이동합니다. 16:20 98 0
161732 💬 포케로그 팬게임인데 트래픽 어떻게 감당하는거지 [5] 이백만갤로그로 이동합니다. 16:15 124 0
161731 🐣질문 유니티 뉴비 질문좀 [1] ㅇㅇ갤로그로 이동합니다. 16:02 53 0
161730 🐣질문 캐릭터 일러스트는 보통 얼마나 줘? [1] ㅇㅇ갤로그로 이동합니다. 15:59 113 0
161729 📜일지 6월 1주 일지 [29] 봄네코갤로그로 이동합니다. 15:43 380 13
161728 💬 근데 노가다건 직장이건 퇴근해서 뭐 한다는거 힘들지않냐 [10] ㅆㅇㅆ(124.216) 15:13 219 2
161727 💬 아트 작업자인데 겜 만들고싶어서 [11] ㅇㅇ(14.36) 15:04 207 0
161726 💬 프로토타입 작업이 끝나가니까 머리가 아프네 ㅇㅇ(221.241) 14:56 117 0
161725 🐣질문 제작 엔진 다른게 쓰는 언어가 다른거임? [2] ㅇㅇ(14.47) 14:15 146 0
161724 🐣질문 1대1로 하는 게임이랑 5대5로 하는 게임을 부르는 용어가 뭐임? [5] ㅇㅇ(220.86) 14:09 169 0
161722 🐣질문 스토리나 대사 관련해서 따로 정리해놓는 프로그램이나 사이트 없음? [6] ㅇㅇ(14.47) 14:01 106 0
161720 💬 어설프게 할줄아는게 아예 못하는거만 못하네요 [11] ㅇㅇ(125.132) 13:51 296 0
161719 💬 인디 개발자들이랑 소통하기 괜찮은 사이트나 커뮤니티 어디임? [5] ㅇㅇ(59.6) 13:38 206 0
161718 💬 인터넷에 개발일지라도 올리면서 하면 속도가 좀 빨라질까 [3] ㅇㅇ(218.145) 13:12 152 0
161717 🐣질문 해외 대상 광고는 어케해야함??? [2] ㅇㅇ(202.14) 11:36 129 0
161716 💬 난 저작권 관련 엄청 사리는데 [17] ㅇㅇ(121.128) 11:25 423 3
161715 💬 게임을 기획하다보면 튜토리얼을 어떻게 짤지 고민입니다. 검은고양0I갤로그로 이동합니다. 11:24 94 0
161714 📜일지 작업 근황 [23] 얀테이갤로그로 이동합니다. 11:13 585 13
161713 🐣질문 유니티 playerprefs 질문 [2] 7월갤로그로 이동합니다. 10:01 107 0
161712 💬 6시간알바하는데도 힘들다 [4] ㅇㅇ(118.221) 09:29 161 0
161711 💬 기획이 게임시스템 - gui 사이의 구현만 해주면 좋아죽을듯 [2] ㅇㅇ(211.210) 09:08 165 0
161710 💬 요즘 군대에서 하고있는거 [4] 딕걸갤로그로 이동합니다. 08:25 270 3
161708 💬 직장인 개발자잇음? [13] ㅇㅇ갤로그로 이동합니다. 07:50 473 1
161707 💬 1.5년 만에 재산 10배 불리는법 [1] ㅇㅇ(175.193) 07:06 284 0
161706 💬 Art of game design 이거 사려면 개정판으로 사는게 낫나요? ㅇㅇ(211.212) 06:29 70 0
161705 💬 전공으로 c++로 게임 만드는 강의듣고 있는데 ㅇㅇ(203.212) 04:55 118 0
161703 💬 인디는 기획플밍 겸직이 나은거같아 [9] ㅇㅇ(219.255) 04:20 320 0
161702 💬 기획 공부하는데 도움이 될만한 서적들 추천 좀 해주실 수 있나요 [2] 냐코갤로그로 이동합니다. 04:15 124 0
161701 💬 게임을 만들다보면 세상이 시뮬레이션이 아닌가 싶은 생각이든다. [2] ㅇㅇ(106.253) 04:10 101 0
161700 💬 기획자 역량 증명하는 방법 [4] ㅇㅇ(175.192) 04:03 289 2
161699 💬 고도엔진 전도사가 되기까지 2년 [5] longZam갤로그로 이동합니다. 03:43 185 2
161697 💬 기획자 역량 증명하는 방법은 솔직히 [6] ㅇㅇ(182.211) 02:37 270 0
갤러리 내부 검색
제목+내용게시물 정렬 옵션

오른쪽 컨텐츠 영역

실시간 베스트

1/8

뉴스

디시미디어

디시이슈

1/2