3D맥스에서 폴리곤 모델의 토폴로지 도구 사용하기(Topology tool) 토폴로지(topology) 도구를 사용하여 폴리곤 오브젝트의 토폴로지를 다양한 유형의 패턴으로 재구성합니다. 1)씬에 plane 오브젝트를 생성합니다. length 및 width 수치를 설정합니다. 2)plane 오브젝트를 editable poly로 변환합니다. 3)오브젝트를 선택하고 상단 리본의 modeling 탭에서 polygon modeling의 generate topology를 클릭합니다. 4)모델에 생성할수있는 다양한 유형의 패턴을 확인할수있습니다. 5)패턴을 클릭하면 선택한 오브젝트에 해당 패턴의 토폴로지를 재구성합니다. tiles edgedirection cross 6)일부 패턴은 토폴로지를 재구성하는데 엣지 선택이..
스마트팜(smart farm) 자료모음 네덜란드의 스마트팜, YTN https://youtu.be/SI5EVML4cOU 4차혁명시대 한국 농사법, 스브스뉴스 https://youtu.be/x6uRAq1r1so K-스마트팜 농심, 농심엔지니어링 https://youtu.be/t4105lIZgY8 미래 농업을 위한 스마트팜 시스템, 아리랑 TV https://youtu.be/jsN1JXLP60g
유니티에서 콜라이더의 충돌 무시(Physics.IgnoreCollision) Physics.IgnoreCollision(collider1, collider2) 함수는 충돌 감지 시스템이 collider1과 collider2 사이의 충돌을 무시하도록 설정합니다. https://docs.unity3d.com/ScriptReference/Physics.IgnoreCollision.html 1)충돌에 사용할 두개의 오브젝트를 생성합니다(sphere1, sphere2) 2)예에서 Sphere1의 콜라이더를 트리거로 설정하고(isTrigger 체크) 리지드바디 컴포넌트를 추가하였습니다. 3)Sphere2의 콜라이더에서 isTrigger 속성을 체크해제하고 리지드바디 컴포넌트를 추가하지않았습니다. 4)Sphere1의..
유니티(unity)에서 Time 클래스 사용하기 Time 클래스는 유니티에서 가져올수있는 시간 정보에 대한 다양한 속성을 제공합니다. https://docs.unity3d.com/ScriptReference/Time.html Time.deltaTime 마지막 프레임에서 현재 프레임까지의 간격(초)을 의미합니다. 아래 예에서 매 프레임마다 프레임 간격 시간을 출력하는것을 확인할수있습니다. Time.unscaledDeltaTime 타임 스케일(timeScale)에 독립적인 deltaTime을 의미합니다. Time.time 현재 프레임의 시작 시간을 의미합니다. 동시에 게임을 시작하고 경과한 시간을 의미한다. Time.realtimeSinceStartup 게임의 일시 중지 영향을 받지않는 현재 프레임의 시작 ..
유니티(unity)에서 mathf 클래스의 수학함수 사용하기 Mathf 클래스는 게임의 개발에서 필요한 다양한 종류의 수학 함수 모음을 제공합니다(보간, 값 제한과반복, 로그함수,거듭제곱근과 제곱근, 삼각함수, 기타) https://docs.unity3d.com/2021.1/Documentation/Manual/class-Mathf.html https://docs.unity3d.com/kr/2021.1/ScriptReference/Mathf.html Mathf.Clamp() 주어진 값에 대해서 최소값(min)과 최대값(max) 사이의 범위로 제한한 값을 반환합니다. 값이 최소값보다 작으면 최소값을 반환하고 값이 최대값보다 크면 최대값을 반환합니다. 아래 코드에서 변하는 오브젝트의 위치 x(transfor..
유니티(Unity) OnTriggerEnter 함수(콜라이더, isTrigger, 리지드바디)OnTriggerEnter 함수는 트리거 콜라이더(Trigger Collider)가 다른 콜라이더와 접촉하거나(실제 물리적인 충돌을 일으키지 않고) 영역에 진입할때 호출되는 함수입니다. 적이 플레이어의 공격 범위에 진입한 경우, 플레이어 아이템 획득등 게임 오브젝트가 특정 영역에 진입하거나 접촉할 때 발생해야 하는 이벤트를 처리할 때 사용됩니다. 플레이어가 아이템을 획득void OnTriggerEnter(Collider other){ if (other.CompareTag("Player")) { Destroy(gameObject); }}플레이어가 공격 범위의 적을 공격void OnTr..
유니티에서 콜라이더 충돌 레이어 관리하기(collision matrix) 레이어 기반의 충돌 감지 시스템 작동 방식을 설정할수있습니다. https://docs.unity3d.com/Manual/class-PhysicsManager.html 1)충돌에 사용할 두개의 오브젝트를 생성합니다. 2)두 오브젝트에 콜라이더를 추가하고 적어도 한개의 오브젝트에 리지드 바디를 추가하고 콜라이더를 트리거로 설정합니다(is trigger) 3)OnTriggerEnter함수를 작성하고 클래스를 추가합니다. 4)런타임에서 두 오브젝트의 콜라이더를 충돌시킵니다. 5)충돌에의해 함수가 호출된것을 확인할수있습니다. 6)인스펙터에서 새로운 레이어를 추가합니다. 7)새로운 사용자 레이어를 추가합니다. 8)project settings..
c# - 기본 데이터 형식과 연산 출력 예제
c# - 조건문, 반복문 기본 예제(if, switch, while, for)
c# - 콘솔에서 Hello World 출력하기, Console.WriteLine과 Console.Write 1)비주얼스튜디오(visual studio)를 실행하고 새로운 프로젝트를 시작합니다. New project의 대화상자에서 템플릿으로 Visual C# 를 선택하고 Console Application를 선택합니다. 2)프로젝트 이름으로 설정한 test 네임스페이스의 program 클래스의 스크립트 작성을 시작합니다. 3)Main 함수에 Console.WriteLine("Hello World");를 작성합니다. 코드의 문장을 마칠때 세미콜론(semicolon)을 입력합니다. 4)윈도우의 콘솔에서 괄호()안의 문자열을 출력한것을 확인할수있습니다. Console.WriteLine 함수를 사용하여 문자열을..
유니티(Unity) 자주 사용하는 이벤트 함수 종류(초기화, 업데이트, 충돌, 기타)스크립트의 수명 주기(life cycle) 동안 사전에 정해진 순서로 실행되는 이벤트 함수 모음이벤트 함수 설명 및 실행 순서(Execution Order of Event Functions)https://docs.unity3d.com/kr/530/Manual/ExecutionOrder.htmlhttps://docs.unity3d.com/kr/2022.3/Manual/ExecutionOrder.html초기화 및 시작 관련 함수Awake()활성화된 스크립트 인스턴스(enabled script instance)가 로드될 때 호출됩니다. 어플리케이션이 시작되기전에 Awake를 사용하여 초기화 작업을 수행할수있습니다. 항상 모든 ..
유니티에서 리지드바디(Rigidbody)의 Sleep, WakeUp, Sleep Threshold리지드바디(Rigidbody)의 Sleep 및 Wake Uphttps://docs.unity3d.com/Manual/RigidbodiesOverview.html 기본적으로 리지드바디(Rigidbody)의 Sleep 및 WakeUp는 자동적으로 발생합니다. 리지드바디가 Sleep Threshold 속성에 설정한 값보다 느린 속도로 움직이는 경우 유니티는 해당 리지드바디를 Sleep 상태로 설정합니다. 물리 시스템에서 Sleep 상태인 리지드바디는 물리 계산에서 제외되며 프레임에서 업데이트되지않아 덜 자원 소모적이게됩니다(Rigidbody optimization) Sleep 상태인 리지드바디가 충돌이나 힘을 받으..