분류 전체보기 148

[OpenGL] OpenGL Basic Code

#include void display(void){ glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); glLoadIdentity(); assignment1(); glFlush();}int main(int argc, char **argv){ glutInit(&argc, argv); glutInitDisplayMode(GLUT_RGBA | GLUT_DEPTH | GLUT_SINGLE); glutCreateWindow("Lecture"); glutDisplayFunc(display); glutMainLoop(); return 0;}openGL의 기본 코드인데, 각 함수들이 어떤 역할인지 정리해보겠다* 각 함수들에서 여러 개의 bit mask 인자를 전달할 때에는 Bi..

[Unity] 상속 부모의 Start Awake Update메서드 실행이 안 되는 문제

부모 클래스에도 Awake / Start / Update 메서드가 존재하고, 자식 클래스에도 동일한 메서드가 존재한다면 부모 클래스의 메서드는 실행되지 않고 자식 클래스의 메서드들만 실행이 된다 protected virtual void Awake(){}해결을 위해서는 부모 클래스의 메서드를 virtual으로 선언해 준 다음 protected override void Awake(){ base.Awake();}자식 클래스에서 override로 메서드를 선언하고 base.Awake()로 부모 클래스의 Awake 메서드를 호출해 주면 된다(base: 상속받은 부모)

[C#] 특정 방향(벡터)의 각도(angle) 구하기

발사 지점에서 플레이어를 향해 레이저를 발사시키는 기능을 만드는데, 발사 지점의 position과 플레이어의 position을 받아와 발사지점에서 플레이어까지의 벡터는 구했으나, 레이저를 방향에 맞게끔 회전시키는 작업을 해 줘야 했다 아크탄젠트(atan)를 이용해서 구해야 하는 건 알았으나, 정확한 사용방법을 잘 모르겠어서 검색하다가 발견했다https://wumbo.net/formulas/angle-between-two-vectors-2d/ Angle Between Two Vectors 2D FormulaCall the function. The angle is equal to radians or converting to the circle constant notation by multiplying by ..

[Unity] Cinemachine에서 3D 카메라의 범위 설정하기(Projection: Perspective)

이전 글(https://hye3193.tistory.com/154)에서 Cinemachine을 이용해서 카메라가 플레이어를 따라오고, 맵의 바깥쪽을 비추지 않도록 Bound를 설정해 주는 작업을 하였다 그런데 2D 게임이지만, 원근감을 위해 3D 카메라를 사용할 경우 설정을 변경해주어야 하는 부분이 있다 우선 main camera의 투시(projection)을 perspective로 변경해 준다 unity에서 카메라 투사에는 두 종류가 있는데, 하나는 orthographic으로, 일반적인 2D 같은 투사 방식이고, 다른 하나는 perspecitve로, 3D처럼 원근감이 적용되는 투사 방식이다 프로젝트를 생성할 때 2D를 선택했냐 3D를 선택했냐에 따라 기본적으로 설정된 투사 방식에 차이가 있지만, 유니티..

[Unity] Cinemachine으로 플레이어를 따라오는 카메라 설정하기(2D, Projection: Orthographic)

많은 게임들에서 기본적으로 카메라가 플레이어를 계속 따라다니며 진행되는데, Cinemachine이라는 컴포넌트를 활용해 쉽게 구현해 볼 수 있다 우선 기본적으로 설치되어 있는 패키지가 아니기 때문에, Window > Package Manager로 들어가 검색창에 Cinemachine을 검색해서 설치해 준다 만약 검색했는데 패키지가 뜨지 않는다면, Packages가 In Project가 아닌 Unity Registry로 체크되어 있는지 확인하자 설치가 끝났으면 Hierarchy 창에서 우클릭 후 Cinemachine > 2D Camera를 선택해서 추가해 준다 Virtual Camera라고 이름 붙어 새로 생긴 오브젝트를 보면 CinemachineVirtualCamera라는 컴포넌트가 있는데, 이곳의 Fo..

[C#] 문자 리터럴에 문자가 너무 많습니다(CS1012)

Debug.Log('complete');어떤 문장을 로그로 출력하려고 했는데 위와 같은 에러가 떴다 이유는 char 타입으로 한 개 이상의 문자를 전달하려고 했기 때문 C#에서 Char 타입은 문자 한 개를 가르키고, 'A' 와 같은 식으로 홑따옴표를 사용해서 표현하고, String은 "ABC" 와 같은 식으로 쌍따옴표를 사용해서 표현해야 컴파일 에러가 나지 않는다 Debug.Log("complete");이런 식으로 수정해 주었다

[React Native] 타이머 실행 중 중도 취소 기능(setTimeOut, useRef)

매칭 버튼을 누르면 매칭 중 모달이 뜨고, 2초 뒤에 매칭 완료 화면으로 넘어가는 기능을 구현해 보았다그런데 매칭 중 모달에서 취소 버튼을 누르면 매칭을 취소 시키고, 매칭 완료 화면으로 넘어가지 않게 해야 했어서 그 부분 구현한 것을 기록해 보겠다const [modalVisible, setModalVisible] = useState(false);const timeRef = useRef(null);const startMatching = () => { setModalVisible(true); timeRef.current = setTimeout(() => { setModalVisible(false); navigation.navigate('Done'); }, 2000)..

[VSCode] Visual Studio Code C# 실행하기

1.https://dotnet.microsoft.com/ko-kr/download/visual-studio-sdks Visual Studio용 .NET SDKVisual Studio용 .NET SDK 찾아보기 주 다운로드 페이지를 방문하여 Linux 및 macOS를 포함한 모든 .NET 다운로드를 확인하세요.dotnet.microsoft.com.NET을 자신의 컴퓨터에 맞는 버전으로 설치한다  2.Visual Studio code에서 C# Extension을 설치해 준다C# 검색하면 바로 뜬다나의 경우 기존에 visual studio code를 unity와 연결해서 사용하느라 c# 관련 extension들을 설치해두었던 게 있어서 두 개 다 설치되어 있는데, 아래쪽에 보이는 확장만 설치해도 된다고는 한다..

Programing/VSCode 2024.07.18

[React Native] TextInput을 통해 들어온 값 검증하기(isNaN, Number.isNaN, str.includes)

const removeSpace = text => (text.replace(/\s/g, ''))const checkValue = () => { if (removeSpace(editTitle) == '') { console.log('제목을 입력해 주세요.'); } else if (removeSpace(editContent) == '') { console.log('내용을 입력해 주세요.'); } else { navigation.pop(); }}공백(space, tab)의 정규표현식은 '/\s/g'이다따라서 str.replace를 사용해 공백을 전부 없애 준 뒤 남은 문자열을 확인하여 제목이나 내용에 공백만 들어간 상태라면 안내 문구가 뜨도록 작성할 ..