무료
다른 수강생들이 자주 물어보는 질문이 궁금하신가요?
- 미해결따라하면서 배우는 고박사의 유니티 기초
강의보다가 문득 궁금한게 있어서 여쭤봅니다.
안녕하세요강의보다가 문득 궁금한게 있어서 여쭤봅니다.마우스로 UI상 아무곳을 클릭하면 Input field가 나오게끔 해놨는데요 옆에 저장버튼도 만들어서마우스로 클릭한곳에 Input field가 나오면 메세지를 입력하고 저장버튼을 누르면 화면에 저장된 텍스트가 보이는데 근데, 저장된 텍스트가 클릭한 위치에 고정으로 있어야하는데 계속 카메라를 따라다니더라구요.. 뭐를 중점적으로 봐야할까요?
- 미해결따라하면서 배우는 고박사의 유니티 기초
다른 강의도 듣고 싶어요
https://www.youtube.com/@unitynote/playlists 에서 2D기초강의를 듣고 싶은데 2D횡스크롤 게임(예 : 메탈슬러그, 슈퍼마리오)을 만들려면 어느 강의를 추천할수 있나요?
- 미해결따라하면서 배우는 고박사의 유니티 기초
2D Tilemap Editor 2:00에서요
+ -> tile을 누르라 하셨는데 어딜 찾아봐도 안보이네요 그래서 7개 중에서 뭐라도 눌러야 할까요?
- 미해결따라하면서 배우는 고박사의 유니티 기초
제가 3d 멀미가 있어서 2D게임만 만들 생각인데요
색션2 3d강의를 들을 필요가 있나요? 답변부탁드립니다.
- 미해결따라하면서 배우는 고박사의 유니티 기초
게임오브젝트 삭제함수에서 질문이요
2:12 시간에서 3개의 프리팹에 c#스크립트를 올릴려 하는데[Can't add script component 'PositionAutoDestroyer' because the script class cannot be found. Make sure that there are no compile errors and that the file name and class name match.]라는 메세지가 뜨네요 c#이름이 틀렸나? 해서 확인도 해보고 저장도 여러번 해봤습니다.add component에서 PositionAutoDestroyer를 검색하려해도 나오지 않고요 답변부탁드립니다.
- 미해결따라하면서 배우는 고박사의 유니티 기초
Instantiate() 활용 예제에서 11:30의 예제 질문이요
public class ObjectSpawner : MonoBehaviour{ [SerializeField] private int objectSpawnCount = 30; // Start is called before the first frame update [SerializeField] private GameObject[] prefabArray; [SerializeField] private Transform[] spawnPointArray; private int currentObjectCount = 0; private float objectSpawnTime = 0.0f; void Start() { } // Update is called once per frame void Update() { if(currentObjectCount + 1 > objectSpawnCount) { return; } objectSpawnTime += Time.deltaTime; if(objectSpawnTime >= 0.5f) { int prefabIndex = Random.Range(0, prefabArray.Length); int spawnIndex = Random.Range(0, spawnPointArray.Length); Vector3 position = spawnPointArray[spawnIndex].position; GameObject clone = Instantiate(prefabArray[prefabIndex], position, Quaternion.identity); Vector3 moveDirection = (spawnIndex == 0 ? Vector3.right : Vector3.left); clone.GetComponent<Movement2D>().Setup(moveDirection); currentObjectCount++; objectSpawnTime = 0.0f; } }}를 연습해보았는데 37번째줄 clone.GetComponent<Movement2D>().Setup(moveDirection);의 Setup에 빨간줄이 그어지더니 오류목록에서['Movement2D'에는 'Setup'에 대한 정의가 포함되어 있지 않고, 'Movement2D' 형식의 첫 번째 인수를 허용하는 액세스 가능한 확장 메서드 'Setup'이(가) 없습니다. using 지시문 또는 어셈블리 참조가 있는지 확인하세요.]라는 메세지가 나오네요 답변부탁드립니다.
- 미해결따라하면서 배우는 고박사의 유니티 기초
3D 네비게이션 메시 질문요(유니티 버전이 최근버전이라 잘 진행이 안되네요)
유니티를 최근에 관심있게 학습하고 있습니다. 좋은 강의 감사합니다.현재 유니티 2023.2 버전을 쓰고 있는데 네비게이션이 버전이 달라져서 수강에 애를 먹고 있습니다.일단 Window>Package Manger에서 AI Navigation을 받아서 설치하기는 했는데, 구버전 AI Navigation을 어떻게 설정하는지 좀 알려주시면 감사하겠습니다. 신버전은 Navidation window에 Bake, Object항목이 안보여서 어렵네요네비게이션 메쉬 생성하는거 까지는 인터넷에서 찾아보고, 전체 컴포넌트에 Add하여 Navigation Mesh Agent 넣어서 하긴했는데 Off Mesh Link 형성하는게 여간 어렵네요
- 미해결따라하면서 배우는 고박사의 유니티 기초
2D Basic 6강, 2D-Extras에서 애먹고있습니다.
자료에서 받아서 하면 컴파일 에러가 나고Window-Package Manager에서 접근하면 같은 내용이 없는듯합니다. 현재 유니티 버전은 2023.02를 사용중입니다.어떻게 해야하나요
- 미해결따라하면서 배우는 고박사의 유니티 기초
사다리 밑으로 이동이 안 돼요
강의 다 따라하고 스크립트도 똑같이 작성했는데 사다리 타고 올라가는 건 되지만 내려오는 것이 안 돼요. 사다리 앞에서 멈춥니다.
- 미해결따라하면서 배우는 고박사의 유니티 기초
총알이 나가지 않습니다.
애러는 안 나는 데, 맨 처음 시작했을 때, 오른쪽으로 나가지 않습니다. 코드는 이렇습니다. public class PlayerControler : MonoBehaviour{ [SerializeField] private KeyCode keyCodeFire = KeyCode.Space; [SerializeField] private GameObject bulletPrefab; private float moveSpeed = 3.0f; private Vector3 lastMoveDirection = Vector3.right; private void Update() { // 플레이어 오브젝트 이동 float x = Input.GetAxisRaw("Horizontal"); float y = Input.GetAxisRaw("Vertical"); transform.position += new Vector3(x, y, 0) moveSpeed Time.deltaTime; // 마지막에 입력된 방향키의 방향을 총알의 발사 방향으로 활용 if (x != 0 || y != 0) { lastMoveDirection = new Vector3(x, y, 0); } // 플레이어 오브젝트 총알 발사 if (Input.GetKeyDown(keyCodeFire)) { GameObject clone = Instantiate(bulletPrefab, transform.position, Quaternion.identity); clone.name = "Bullet"; clone.transform.localScale = Vector3.one * 0.5f; clone.GetComponent<SpriteRenderer>().color = Color.red; clone.GetComponent<Movement2D>().Setup(lastMoveDirection); } }}
- 미해결따라하면서 배우는 고박사의 유니티 기초
게임 월드로 배치되는 바닥, 장애물이 “Navigation Static”으로 설정이 안됩니다..
23.1.4버전 사용중입니다.Navigation Static이 설정이 안되고Window에서 Navigation view를 찾을수가 없습니다ㅜㅜ
- 미해결따라하면서 배우는 고박사의 유니티 기초
강의자료 다운로드가 가능할까요?
강의 너무 잘 듣고 있습니다. 리마인드 학습에 활용하려고 하는데 강의 자료는 받을 수 없는건가요?
- 미해결따라하면서 배우는 고박사의 유니티 기초
수업자료 버튼이 안보입니다
리소스는 어디서 다운받나요 버튼이 안보이네용 ㅠ
- 미해결따라하면서 배우는 고박사의 유니티 기초
총알이 player 뒤로 나가게하려면 따로 설정이 필요한가요?
안녕하세요 고박사님!활용예제 마지막예제인 총알 발사하는 부분 질문입니다!위의 사진을 보시면 player위로 총알이 나오게되는데 고박사님 영상으로 보면 player 뒤로 총알이 생성되더라구요.. 하이라키창도 고박사님과 같은데 혹시 어떤 부분을 확인해보면 될까요?
- 미해결따라하면서 배우는 고박사의 유니티 기초
총알이 player 뒤로 생성되게 따로 설정이 필요한가요?
강의해주신 내용대로 작성한 것 같은데.. 계속 돌려봐도 어떤게 다른지 모르겠어서 질문드립니다..!고박사님과 하이라키창이 같게 총알이 생성이 되는데, 저는 총알이 player 위에 생성이되어서... 혹시 어떤부분을 확인하면 될까요?
- 미해결따라하면서 배우는 고박사의 유니티 기초
[asset] 이 로딩이 안되는 이유
안녕하세요, 고박사님 인강을 보며 유니티 독학을 하는 학생입니다. 저는 유니티 2021.3.23f1 LTS 버전을 사용하고 있는데 제가 유니티를 켤 때마다NullReferenceException: Object reference not set to an instance of an object라고 콘솔에 경고가 떠서 여러 유튜브 영상을 찾아 똑같이 해결 시도를 해보았지만 늘 떠있습니다. 또한 유니티 홈페이지에서 다운 받은 애셋을 추가하거나, 현재 강의에서 올려주신 것처럼 파일을 다운받아 프로젝트에 옮겨넣어도 무반응입니다.홈페이지에서 다운 받은 에셋을 추가하면 이 창이 뜨고 스킵을 눌러도 아무런 반응이 없습니다..ㅠㅠ제거를 하고 다시 설치를 해보면 좀 해결이 될까요ㅠㅠ?
- 미해결따라하면서 배우는 고박사의 유니티 기초
used by composite 항목이 없어요
게임오브젝트 물리와 충돌 (13:01)3:45 부분used by composite 항목이 컴포넌트 항목에 어떤건 뜨고 어떤건 뜨지 않는데 왜그런거죠??유니티 3.4.1 버전입니다.
- 미해결따라하면서 배우는 고박사의 유니티 기초
강의 자료를 다운받고 싶습니다.
안녕하십니까? 강의 잘 듣고 있습니다. 강의 중 보여 주시는 PPT 형태 강의 자료를 다운 받을수 있는지요?
- 미해결따라하면서 배우는 고박사의 유니티 기초
23년인 지금 들어도 버전문제는 없을까요
버전이 달라지면 기능도 많이 바뀌는듯해서.이 강의 시리즈를 23년인 지금들어도 문제가 없을지 궁금해집니다.
- 미해결따라하면서 배우는 고박사의 유니티 기초
NavigationMesh 응용 질문있어요
해당 그림처럼 플레이어 오브젝트가 더이상 움직이지 않게됩니다... using System.Collections;using UnityEngine;using UnityEngine.AI;public class OffMeshLinkClimb : MonoBehaviour{ [SerializeField] private int offMeshArea = 3; //오프메시 구역 ( Climb) [SerializeField] private float climbSpeed = 1.5f; //오르내리는 이동 속도 private NavMeshAgent navMeshAgent; private void Awake() { navMeshAgent = GetComponent<NavMeshAgent>(); } IEnumerable Start() { while (true) { // IsOnClimb() 함수의 반환 값이 true일 때 까지 반복 호출 yield return new WaitUntil(() => IsOnClimb()); // 올라가거나 내려오는 행동 // 위에가 true 가 되면 ClimbOrDescend() 가 실행된다 yield return StartCoroutine(ClimbOrDescend()); } } public bool IsOnClimb() { // 현재 위치에 있는 OffMeshLink에 있는지 ( true / false ) if (navMeshAgent.isOnOffMeshLink) { // 현재 위치에 있는 OffMeshLink의 데이 OffMeshLinkData linkData = navMeshAgent.currentOffMeshLinkData; //설명 : navMeshAgent.currentOffMeshLinkData.offMeshLink 가 // true 이면 수동으로 생성한 OffMeshLink // false 면 자동으로 생성한 OffMeshLink // 현재 위치에 잇는 OffMeshLink가 수동으로 생성한 OffMeshLink 이고, 장소 정보가 "Climb"이면 if ( linkData.offMeshLink != null && linkData.offMeshLink.area == offMeshArea) { return true; } } return false; } private IEnumerator ClimbOrDescend() { // 네비게이션을 이용한 이동을 잠시 중지한다 navMeshAgent.isStopped = true; // 현재 위치에 있는 OffMeshLink의 시작 / 종료 위치 OffMeshLinkData linkData = navMeshAgent.currentOffMeshLinkData; Vector3 start = linkData.startPos; Vector3 end = linkData.endPos; // 오르내리는 시간 설정 float climbTime = Mathf.Abs(end.y - start.y) / climbSpeed; float currentTime = 0.0f; float percent = 0.0f; while ( percent < 1) { // 단순히 deltaTime만 더하면 무조건 1초 후에 percent가 1이 되기 때문에 // climbTime 변수를 연산해서 시간을 조절한다 currentTime += Time.deltaTime; percent = currentTime/climbTime; // 시간 경과(최대 1) 에 따라 오브젝트의 위치를 바꿔준다 transform.position = Vector3.Lerp(start, end, percent); yield return null; } // OffMeshLink를 이용한 이동 완료 navMeshAgent.CompleteOffMeshLink(); // OffMeshLink 이동이 완료되었으니 네비게이션을 이용한 이동을 다시 시작한다 navMeshAgent.isStopped = false; }} 스크립트를 정말 똑같이 적었는데도 이런 이유를 모르겠어요 ...