인프런 커뮤니티 질문&답변
컴포넌트 값은 바뀌고있는데 게임화면에서는 움직임이 없는 경우는 어떤 경우 인가요?
해결된 질문
작성
·
242
0
저번 질문에 답변해주신대로 따로 파일을 만들어서 스크립트를 Prefab 파일에 컴포넌트 했는데, 컴포넌트 Rotation의 Y값은 바뀌고있는데 게임화면에서는 움직임이 없습니다;;
[CoinRotate]
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class CoinRotate : MonoBehaviour
{
void Update()
{
transform.Rotate(new Vector3(0.0f, Time.deltaTime * 100f, 0.0f));
}
}
-----------------------------------------------------
[PrefabTest.cs]
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class PrefabTest : MonoBehaviour
{
GameObject coin;
void Start()
{
coin = Managers.Resource.Instantiate("Coin");
Destroy(coin, 3.0f);
}
}답변 1
1
Rookiss
지식공유자
안녕하세요
어제 답변에 약간 오해의 소지가 있었던 것 같네요.
[혹시 PrefabTest에 transform.Rotate를 하신 것이 아닌가요?] 라고 했는데
[PrefabTest에 붙이면 안 됩니다]의 의미로 여쭤본거였습니다.
우선 Y값은 바뀌고 있다고 하셨으니 절반의 성공이긴 한데, 왜 변화가 없을까요?
게임 화면에서 아무런 움직임이 없는 이유는,
현재 transform Y 값이 변하고 있는 객체가
Coin이 아니라 [PrefabTest]라는 보이지도 않는 투명한 객체이기 때문입니다.
따라서 새로 만드신 Coin을 회전하려면 다음과 같은 방법을 사용하면 됩니다.
방법1) CoinRotate를 [PrefabTest]가 아니라 Coin의 프리팹에다 붙인다

방법2) PrefabTest Update에서 coin을 직접 조종한다.
위와 같이 테스트를 해보시기 바랍니다.
그리고 참고로 처음할 땐 저런 부분들이 원래 헷갈리는게 당연한거니
꾸준한 의문을 갖고 헤딩을 해보시기 바랍니다.
감사합니다.





