분류 전체보기

    Unity 스크립트 실행 순서 설정

    스크립트 실행 순서가 중요한 이유 스크립트 내에서 객체를 생성하거나 이벤트 함수를 등록/해지를 하거나 실행할 때 실행 순서가 꼬여 있을 경우 원하는 대로 작동하지 않습니다. 컴포넌트의 Awake 나 Start 시점에 인스턴스 생성을 하거나 액션을 등록하는 경우 실행 순서가 맞지 않는 경우 nullreferenceexception 에러가 발생한다.... 실행 순서 변경 방법 가장 편리한 방법은 메인 메뉴에서 편집(Edit) > 프로젝트 설정(Project Settings) > 스크립트 실행 순서(Script Execution Order)를 선택하여 스크립트 실행 순서를 변경하는 방법이다. Apply버튼 위에 + 버튼을 눌러서 스크립트를 추가할 수 있고 Default Time 기준으로 위에 있으면 기본 시간..

    Unity 이벤트 함수

    Unity의 핵심 기능 중 하나는 개발자가 게임 내 특정 작업이나 조건에 대한 응답으로 트리거할 수 있는 이벤트를 생성할 수 있는 이벤트 시스템입니다. 이러한 이벤트는 특정 이벤트에 대한 응답으로 엔진이 자동으로 호출하는 특수 메서드인 Unity 이벤트 함수에 의해 처리됩니다. Unity 이벤트 함수는 Unity의 MonoBehaviour 클래스에 포함된 미리 정의된 메서드입니다. 이러한 메서드는 객체가 생성되거나 소멸될 때, 충돌이 발생할 때 또는 버튼이 눌릴 때와 같은 특정 이벤트에 대한 응답으로 엔진에 의해 자동으로 호출됩니다. 다양한 유형의 Unity 이벤트 함수가 있으며 각 함수는 특정 이벤트 또는 일련의 이벤트에 의해 트리거됩니다. 이벤트 함수 실행 순서 : Awake > OnEnable > ..

    Unity 스크립트 작성 시 유용한 애트리뷰트

    모든 애트리뷰트는 [] 안에 넣어서 작성한다. AddComponentMenu("Test/Script") 컴포넌트 추가 시 해당 폴더에 스크립트가 생긴다 UnityEditor.MenuItem("MyMenu/Menu") ContextMenu 컴포넌트 안에서 함수를 실행할 수 있다. ContextMenuItem("Random", RandomNumber") public class AttributeManager : MonoBehaviour { [ContextMenuItem("Random", "RandomNunber")] public int num; void RandomNumber() { num = Random.Range(0, 100); } } System.Obsolete("위 스크립트는 사용을 제한합니다.") 해..

    파이썬 파일 및 폴더 다루기 : OS모듈

    os는 Operating system의 약자로 폴더 생성, 파일 삭제, 이름 변경 등 운영체제의 종속 기능을 수행할 수 있는 모듈이다 import os os를 임포트해주면 사용할 수 있다 현재 작업 경로 확인 getcwd() import os print(os.getcwd()) >> C:\Users\Administrator cwd는 Current Work Directory 로 현재 작업 경로를 알려준다. 작업 경로 변경 chdir() import os os.chdir(r'C:\Program Files\Windows Defender') print(os.getcwd()) >> C:\Program Files\Windows Defender 파일 목록 listdir() import os os.chdir(r'C:\P..

    파이썬 데이터 묶기 zip()

    zip() 함수란?? zip 함수는 여러 개의 순회 가능한 객체를 인자로 받고, 각 객체가 담고 있는 원소를 튜플 형태로 반환합니다 저는 zip 함수를 보면 압축 파일 형태가 생각나는데요 이렇게 생각하시면 이해하시기 쉬울것입니다 score = [70,65,90] name = ['철수','영희','진수'] for pair in zip(score,name): print(pair) 위 코드를 실행하면 이러한 결과물이 나옵니다 (70, '철수') (65, '영희') (90, '진수') 감이 오시나요?? 같은 인덱스에 있는 데이터를 묶어서 짝을 지어줍니다 저장 score = [70,65,90] name = ['철수','영희','진수'] total_list = list(zip(score,name)) total_di..

    이미지의 크기 변환 cv2.resize()

    이미지의 사이즈를 변환시키는 cv2의 함수 resize를 알아 보도록 합시다 cv2.resize(src, dsize, dst=None, fx=None, fy=None, interpolation=None) -> dst • src : 이미지(input) • dsize : 변환 시킬 이미지 크기(output) , (w,h) 튜플로 사용하며 (0,0)이면 fx와 fy 값으로 결정함 • dst : 출력 이미지 • fx, fy : 스케일 비율. dsize 값이 0일때 유효 ex) 이미지 크기가 1920* 1080 일때 fx=0.5, fy=0.5 이면 960*540 크기로 변환을 의미 • interpolation : 보간법. 기본값은 INTER_LINEAR 보간법 종류 사이즈가 변할 때 pixel 사이의 값을 결정 ..

    CV2로 IPCAMERA 영상을 동영상으로 저장 해보자

    먼저 코드를 보여드리고 설명드리겠습니다 import cv2 import os, datetime class capture(): def __init__(self,ip,id,pw,rport,): self.ip = ip self.id = id self.pw = pw self.rport = rport self.url = f'rtsp://{id}:{pw}@{ip}:{rport}/cam0_0' def video(self): cap = cv2.VideoCapture(self.url) fourcc = cv2.VideoWriter_fourcc(*'XVID') width = int(cap.get(cv2.CAP_PROP_FRAME_WIDTH)) height = int(cap.get(cv2.CAP_PROP_FRAME_HEIGH..

    CV2로 IPCAMERA 영상을 출력해보자

    cv2로 ipcamera를 연결하려면 rtsp 주소가 필요합니다. 여기서 RTSP란 Real Time Streaming Protocol의 약자로 스트리밍 미디어 서버를 컨트롤 하기위한 네트워크 프로토콜입니다. RTSP 주소 알아보기 IPCAMERA(이하 카메라라고 칭함)가 부여 받은 아이피 주소를 알아야합니다. 카메라 제조사의 소프트웨어를 보시면 ip finder 프로그램을 제공합니다. 192.168.0.48 이런 아이피 주소를 부여 받습니다(자신의 아이피 주소마다 상이함) 동영상플레이어로 주소열기(네트워크 스트림)하고 아래 예시의 주소를 입력하면 rtsp 접속이 가능합니다 rtsp 포트번호는 따로 설정하지 않으면 기본값이 554입니다 한화 테크윈 : rstp://카메라IP:554/profile2/med..