반응형
[C#] Random.InitState() - 동일한 랜덤 값 얻기
PROGRAMMING/03. C#2024. 4. 30. 13:15[C#] Random.InitState() - 동일한 랜덤 값 얻기

유니티[C#]를 이용하여 Random.InitState()로 동일한 랜덤 값 얻기일단 랜덤 한 값을 얻고 싶다면, Random.Range()로 만들 수 있을 것이다.그렇다면 결과는 당연히 매번 다른 랜덤값이 출력될 것이다. 하지만 이 결과를 Random.InitState()를 이용하여 매번 동일하게 만들 수 있다.이 부분을 추가하고 다시 실행해 보면  이 결과 값을 기억하고 다시 실행해 봐도 이렇게 동일한 값이 나오는 것을 볼 수 있다.시드가 동일하면 동일한 값으로 동일한 알고리즘을 연산하기 때문에 값이 항상 똑같다. 게임개발로 치면, 클라이언트 하고 서버와의 랜덤 동기화를 위해서 사용하는 것이 바로 시드이다.  출처 및 참고: 강의 짱 잘하시는 울 유니티 선생님 수업

[유니티] Prefab Variant (프리팹 배리언트)
Unity/01. 유니티2024. 4. 27. 15:27[유니티] Prefab Variant (프리팹 배리언트)

Prefab Variant  부모 프리팹을 기준으로 하는 상속의 개념  프리팹 배리언트는 프리팹의 사전 정의된 배리에이션 집합이 필요할 때 유용하다. 예를 들어 게임 내에 동일한 기본 로봇 프리팹에 기반한 여러 종류의 로봇을 만든 후 그중 일부 로봇이 아이템을 운반하거나, 다른 속도로 움직이거나, 추가 음향 효과를 내도록 만들어야 할 경우가 있다. 이러한 경우 모든 로봇이 공유할 기본 액션을 초기 로봇 프리팹이 모두 수행하도록 설정한 후 다음을 위한 여러 개의 프리팹 배리언트를 생성할 수 있다.속도를 변경하도록 스크립트에 프로퍼티 오버라이드를 사용하여 로봇이 더 빠르게 움직이도록 한다.추가 게임 오브젝트를 로봇의 팔에 연결하여 로봇이 아이템을 운반하도록 만든다.삐걱거리는 소리를 재생하는 AudioSour..

[유니티] Nested Prefab (네스티드 프리팹)
Unity/01. 유니티2024. 4. 27. 15:07[유니티] Nested Prefab (네스티드 프리팹)

Nested Prefab 프리펩 안에 다른 프리펩이 들어가 있는 구조다른 프리팹 내에 프리팹 인스턴스를 포함할 수 있다. 이를 네스티드 프리팹이라고 부른다.네스티드 프리팹은 고유한 프리팹 에셋 링크를 보유하며 다른 프리팹 에셋의 일부를 형성한다.Ex) 사람 프리팹을 만들고 무기 프리팹을 만들어서 그 사람 프리팹 안에 넣을 수 있는 무기 프리팹을 넣고 각 프리팹을 Prefab Mode로 수정가능 (사람 1, 사람 2, 사람 3 프리팹은 따로 쓰고 무기 프리팹은 하나로 관리 가능)프리팹 모드에서 네스티드 프리팹 추가프리팹 모드에서는 씬에서와 동일한 방법으로 프리팹 인스턴스를 추가하는 등의 작업을 수행할 수 있다.Project 창의 프리팹 에셋을 Hierarchy 창 또는 Scene 뷰로 드래그하면 방금 연 ..

[C++] 입력과 출력 (cout, cin / printf, scanf)
PROGRAMMING/04. C++2024. 4. 27. 14:52[C++] 입력과 출력 (cout, cin / printf, scanf)

cout프로그램에 무언가를 출력하기 위한 함수이다.C++의 스트림 유형의 객체 출력하려는 값의 자료형을 컴파일러가 검사할 수 있다.출력하려는 값의 형에 따라 적절한 함수를 호출한다.모양cout                  "C++";객체  삽입연산자  문자열 방향이 정보의 흐름을 상징cout : 문자열(string), 수(number), 문자(character) 들을 포함한 여러 가지 다양한 정보들을 출력하는 방법을 알고있는, 미리 정의 된 객체 cout headercout을 사용하려면 iostream을 include 해야 한다.1#include iostream>cscout 예제12345678#include iostream> int main(){    std::cout  "Hello C++"  std:..

[C#] 리플렉션 (Reflection)
PROGRAMMING/03. C#2024. 4. 26. 11:54[C#] 리플렉션 (Reflection)

리플렉션 (Reflection)➡️ 어떤 Type에 대한 정보를 가져오거나 접근하는 등의 작업을 런타임에 동적으로 수행할 수 있도록 해주는 기능이다.리플렉션을 사용하면 런타임에서 메서드를 호출하거나 필드의 값을 바꾸는 등의 작업을 할 수 있다. 다음은 리플렉션을 이용해서 할 수 있는 것들이다.어셈블리 내의 형식에 대한 메타데이터에 접근할 수 있으며, 여기는 전체 형식 이름, 멤버 이름, 특성 등이 포함된다.컴파일 타임에 정의되는 바인딩 대신 메타데이터를 사용해서 런타임에 동적으로 형식의 멤버를 호출할 수 있다.리플렉션은 어셈블리에 포함된 메타데이터를 검사하는 프로세스다.리플렉션을 통해 어셈블리 내의 모든 형식을 열거하고 특정 조건에 부합하는 정보를 찾는 것이 가능하다.형식에 접근할 때는 System.Ty..

[C++] Template (템플릿)
PROGRAMMING/04. C++2024. 4. 26. 11:19[C++] Template (템플릿)

템플릿(Template)함수나 클래스를 개별적으로 다시 작성하지 않아도, 여러 자료 형으로 사용할 수 있도록 하게 만들어 놓은 틀이다.템플릿을 사용하면 타입마다 별도의 함수나 클래스를 만들지 않고, 여러 타입에서 동작할 수 있는 단 하나의 함수나 클래스를 작성하는 것이 가능하다.C#의 제네릭과 비슷하다고 생각하면 된다. 함수 템플릿(Function Template)클래스 템플릿(Class Template)이렇게 두 개로 나뉜다.함수 템플릿(Function Template)함수의 일반화된 선언을 의미한다. 함수 템플릿을 사용하면 같은 알고리즘을 기반으로 하면서, 서로 다른 타입에서 동작하는 함수를 한 번에 정의할 수 있다.임의의 타입으로 작성된 함수에 특정 타입을 매개변수로 전달하면, C++ 컴파일러는 해..

반응형
image