Unity 현재 씬 Index 가져오는 방법
SceneManager.GetActiveScene().buildIndex
- Unity/Study
- · 2023. 1. 2.
![Unity Rotate](http://i1.daumcdn.net/thumb/C120x120/?fname=https://blog.kakaocdn.net/dn/byBK0c/btrTRej3SPk/MUAQz5W7twom4k4hljWtkk/img.gif)
Unity Rotate
오브젝트를 회전시키고 싶을 땐 다양한 방법이 있겠지만 그중 Rotate를 사용해서 회전할 수 있다!
- Unity/Study
- · 2022. 12. 17.
1. Collision Particle 입자들도 Collision 이벤트를 호출시킬 수 있다는 사실을 여러분은 알고 계시는가?!!! 나는 해커톤때 처음 알게 된 사실인데 매우 놀랐다는 사실!! Visualize Bounds를 체크하면 Particle들의 콜라이더 범위가 보인다! 두둥!탁! Radius Scale을 조절해서 Particle의 콜라이더 범위를 컨트롤 할 수 있다! 두둥!탁! 이벤트 메세지를 호출하기 위해서는 Visualize Bounds 바로 위에 있는 Send Collision Messages를 체크해주면 된다! 두둥!탁 그 외에 Dampen, Bounce, Lifetime Loss등을 컨트롤 해서 입맛대로 구현하면 된다! 2. Texture Sheet Animation Mode에는 Gri..
light mapping은 장면의 실사 느낌을 향상시킬 수 있지만, 동적인 객체가 사실적으로 렌더링 되지 않는 단점이 있다. 동적인 물체에 대한 라이트맵핑을 실시간으로 계산하는 것은 불가능 하지만, Light Probe를 이용하면 비슷한 효과를 얻을 수 있다. 동적인 오브젝트의 조명과 정적인 라이트 맵핑된 물체 사이의 어색함을 방지하는 데 도움이 된다 그냥 Realtime Lighting쓰면 되는거 아니냐? 하는데 실시간 라이팅 그리고 그림자는 연산이 비싼 작업이다. Light Map의 특징과 Light Probe Light Map 특징은 다음과 같다. Static Object(Contribute GI이 적용된)에만 적용된다. Texture 2D형식으로 Data 저장된다(3번과 연관). 메모리 이슈 발생..
Anti-aliasing(안티에일리어싱)이란? 안티에일리어싱 기술은 계단 현상(에일리어싱, Aliasing)(디지털 샘플링에서 샘플링 주파수가 원본 신호의 최대 주파수의 2배 보다 낮은 경우, 인접한 스펙트럼이 겹쳐서 출력이 왜곡되는 현상)이 생길 때 사용하는 기술입니다. 계단 현상이란 렌더링된 컨텐츠를 재생할 때 출력되는 이미지의 픽셀조각이 튀거나, 선이나 도형의 가장자리가 울퉁불퉁해지고 날카로워지는 형상으로 나타나는 것을 뜻합니다. 안티에일리어싱기술은 계단 현상을 해결하기 위한 Anti 기술입니다. 안티에일리어싱 기술이 특히 빛을 발할 때는 같은 타일이 수 없이 반복되는 것을 멀리서 바라볼 때 좋습니다. Unity에서는 2가지 안티에일리어싱 기술을 기본적으로 제공하는데 첫 번째로 FXAA, 두 번..
https://docs.unity3d.com/ScriptReference/MonoBehaviour.OnParticleCollision.html Unity - Scripting API: MonoBehaviour.OnParticleCollision(GameObject) docs.unity3d.com
유니티 코딩을 하다보면 int[] arr = ~~ arr.Length 즉 길이로 하고 List list = ~~ list.Count 개수로 하는 경우를 볼 수 있다 두 차이는 메모리에 저장되는 방식이 다르기 때문인데 배열은 순차적으로 메모리에 저장이 되므로 길이라는 표현이 맞고 리스트는 마구잡이로 메모리에 저장되어 개수로 표현되는게 맞다 배열은 크기가 고정적이지만 인덱스로 접근하기 편하다는 장점이 있고 리스트는 크기가 유연하게 변하지만 배열에 비해 느리다는 차이점이 있다
SceneManager.GetActiveScene().buildIndex
타이머 분(Min), 초(Sec) XX:XX 로 표시(코드) / string.Format 이용하기 private void Update() { sec += Time.deltaTime; if (sec >= 60f) { min += 1; sec = 0; } gameTime.text = string.Format("{0:D2}:{1:D2}", min, (int)sec); } string.Format메서드를 사용하여 시간 값을 나타내는 형식이 지정된 문자열을 만들 수 있습니다. 위 코드에서 보시면 " {0:D2}:{1:D2}"가 형식 문자열입니다. 문자열에 값을 삽입할 때 값의 서식을 지정하는 방법을 정의할 수 있습니다. {0:D2} : {0}으로 표시되는 첫 번째 인수를 나타냅니다. {1:D2} : {1}로 표시..
게임을 제작하다보면 일시정지 기능이 필요할 때가 굉장히 많다 그럴 때 Time.timeScale = 0; 을 사용하면 시간을 멈출 수 있다 다시 돌릴려면 Time.timeScale = 1; 을 하면 된다 그럼 0~1사이의 값은 무엇이냐? 또는 0~1 벗어난 값은 어떻게 되냐? 1은 정상적인 시간의 흐름이다 0은 멈춰있는 시간의 흐름이다 그렇다면 0.5는 시간의 흐름이 0.5배속이고 2는 시간의 흐름이 2배속이라고 생각하면 된다
Animator Oveeride Controller를 클릭해보자! 이렇게 [+] 달려있는 Animator가 생긴다 Controller에 아무것도 없는, 비어있는 상태인데 기존에 만들어둔 Player 컨트롤러를 넣어주면 아래에 Original 애니메이션 클립들이 존재한다 여기에 덮어씌우고 싶은 애니메이션 클립을 넣으면 된다 오버라이딩 애니메이션을 처음써봐서 신기했다! 끄읏!
상단 [File] -> [Build Settings...]을 누르면 이렇게 Scene을 관리할 수 있는 Window창이 하나 뜬다 씬을 Drag & Drop 해서 추가할 수 있고 Delete를 눌러 삭제할 수 있으며, 씬의 순서를 바꿔줄 수 있다 다음으로 스크립트로 씬을 관리하는 법에 대해 알아보자 using UnityEngine.SceneManagement; 씬을 관리하는 스크립트에는 반드시 위와 씬매니저먼트를 using으로 선언해주어야 한다!! SceneManager.LoadScene을 통해 불러온 씬의 이름을 적어주면 된다 그럼 끗~ 씬을 불러올 때 동기화 / 비동기화 방식이 있는데.... 나중에 기회되면 올리겠다 크크루삥뻥
오브젝트를 회전시키고 싶을 땐 다양한 방법이 있겠지만 그중 Rotate를 사용해서 회전할 수 있다!
오늘의 준비물이다! 이 친구에게 Mesh Collider를 붙여주면 외관상 아무 변화가 없다?!!!! 이때, Mesh Renderer를 꺼주면?! 대박이다.. 나는 지금껏 Convex를 눌러야 메쉬콜라이더가 생성되는줄 알았는데 그게 아니였던거다 올 렌더에 가려져서 안보였던거임ㄷㄷㄷ 우리 학회 최고의 Brain 두 명이 Convex에 대해 알려준게 있다 컨케이브: 콜라이더 o 트리거 x 컨벡스: 콜라이더 o 트리거 o 또 다른 학회분 말로는 컨벡스 켜서 사용할 거면 파츠별로 따로 콜라이더 만들고, 각 콜라이더는 움푹 패인 부분이 없게 쪼개서 만들어야 할 거 같아요 라고 가르쳐주셨다! Convex는 충돌 감지를 위해 사용되는 메쉬 오브젝트를 나타내며, true로 설정하게 되면 해당 메쉬 충돌체는 구멍(hol..
위 사진을 보면 눈오리가 가운데에 서있다 이 친구의 월드좌표계는 위 사진과 같다 그런데 이 눈오리가 바라보고 있는 방향으로 가고 싶다면 뭐 월드좌표를 사용해서 transform.position += Vector3.left * speed; 이런식으로 할 수 있겠지만 캐릭터가 회전하면 Vector3.left가 아닌 다른 방식으로 또 수정해주어야 한다 var dir = Vector3.left; rb.MovePosition(rb.position + (dir) * (speed * Time.deltaTime)); 위와 같이 코드를 작성하면 캐릭터가 회전해도 그냥 이렇게 쭉 가는 거다 이러한 문제는 Local좌표계를 사용해서 쉽게 처리할 수 있다 눈오리가 어딜 바라보든 앞 모습은 로컬 좌표계 기준 항상 (-)Z축을 ..
먼저 Resources 폴더를 만들어 주어야 한다 Resources.Load("UI/SpecialCharacters" + "Shift_small"); 다음으로 위와 같이 코드를 작성하면 Resources => UI => Shift_small 녀석을 가져올 수 있다 Resources.Load에서 Original 모습은 Resources.Load 이다 응용 transform.GetChild(i).GetComponentInChildren().sprite = Resources.Load("UI/SmallLetter/" + transform.GetChild(i).name);
ParticleSystem을 사용하다보면 한 번쯤 ParticleSystemInheritVelocityMode이라는 옵션을 보셨을 것입니다. Inherit Velocity Mode => 속도 상속 모드 ? 이 모드는 시간이 지남에 따라 Particle의 속도(Velcocity)가 부모 오브젝트의 움직임에 반응하는 방식을 선택하는 Mode를 뜻합니다. 이 Mode는 Simulation Space가 Main 모드에서 World로 설정된 경우 입자에만 영향을 미칠 수 있습니다. Mode에는 총 2가지 모드가 있습니다. 첫 번째로 Initial, 두 번째로 Current Mode가 있습니다. Initial 모드는 각 입자가 생성될 때 속도가 한 번 적용돼서 입자가 생성된 후에는 만들어진 Particle의 속도가..