본문 바로가기

Programming/Unity43

[Unity3D] 3D 오브젝트 좌표에 2D 텍스트 위치 시키기 ✔ Unity - WorldToScreenPoint(Vector3 point) 3D Point에서 2D Point 가져오기 3D 캐릭터가 존재할때 캐릭터 위에 아이디나 특정 이미지, 버튼 등등을 위치 시킬 필요가 있다. 2D 오브젝트 타잎을 World Space으로 생성하고 위치 시키면 되기는 한다. 하지만 World로 생성할 시 화면 회전, 줌 인/아웃에 영향을 받아 카메라에 따라 다르게 보인다. 크기, 각도 등의 영향을 받지 않고 Text나 이미지를 캐릭터 위에 생성할때에는 World Space로 생성하지 않고 생성한뒤 Camera 속성인 WorldToScreenPoint 함수를 활용하면 된다. WorldToScreenPoint( Vector3 point) 는 3D 포인트를 2D 포인트로 반환해주는 .. 2020. 12. 21.
[Unity3D] 카메라 거리에 따라 오브젝트 활성화/비활성화 ✔ Unity Runtime - Camera 거리에 따라 오브젝트 렌더링 활성화/비활성화 LOD Group Component 활용 어플리케이션은 화면에 표시된 수많은 모델링들을 렌더링합니다. 그리고 리소스에서 가장 많이 사용되는 것이 화면 렌더링이죠. 사용자가 특정 장면을 줌하는 것이 아닌 전체 장면을 보기위해 줌 아웃을 한다면 씬에 포함된 모든 오브젝트들을 렌더링 하게 됩니다. 그럼 렌더링에 소요되는 시간이 증가되며 frame은 낮아질 수 밖에 없습니다. 장면 전체에 대해서 렌더링을 할 경우 조그만한 오브젝트가 보일까요? 보이지 않습니다. 굳이 보일 필요도 없구요. 보이지 않는다고 하지만 프로그램은 렌더링을 하고 있습니다. 굳이 보일 필요가 없는 오브젝트를 어떻게 처리해야 할까? 아주 간단합니다. Un.. 2020. 12. 4.
[Unity] C# 외부 프로세스(프로그램) 조회 및 실행, 종료 - args 매개변수 전달 Unity에서 (어차피 C#에서 제공되는 기능) 다른 프로세스(프로그램)을 실행을 하는 경우가 종종있다. 그리고 다른 프로세스를 실행하면서 매개변수를 던질 수 있다. ● 프로세스 동작 확인 현재 해당 프로세스가 동작하고 있는지를 검색한다. using DI = System.Diagnostics 의 별칭을 지정하여 사용하였다. System.Diagnostics에도 Debug API가 존재하므로 Unity의 Debug사용시 불편해서 별칭사용을 추천. 프로세스 리스트 얻는 방법은 다음과 같다. using DI = System.Diagnostics; //노트패드 프로세스 얻어오기 processList = DI.Process.GetProcessesByName("Notepad++"); if(processList.Le.. 2020. 12. 4.
[Unity] WebSocket을 이용한 통신 서버 - 클라이언트 구축하기 ✔ Unity3D - Socket 통신 서버, 클라이언트 구축하기 WebSocket-Sharp 활용 데이터를 주고 받을 경우 통신은 필수항목이다. 어떻게 서버와 통신을 하여 데이터를 주고 받을지는 다양한 방법이 있다. ( 포툰, UNET 등 ) 여기에서는 WebSocketSharp.dll 을 이용하여 서버와 Unity 클라이언트와 통신을 하는 방법에 대해 알아본다. 필자는 서버측은 Windows Form으로 구축하고 클라이언트를 Unity로 제작했다. (서버측도 Unity나 다른 어떤 시스템으로 구축해도 무방하다.) WebSocket-Sharp.dll에 대한 자세한 내용은 아래 링크 참조 github.com/sta/websocket-sharp sta/websocket-sharp A C# implement.. 2020. 12. 3.
[Unity3D] NVIDA Flex Error - ArgumentException: ComputeBuffer.SetData() ✔ NVIDIA FLEX Error ArgumentException: ComputeBuffer.SetData() NVIDIA FLEX을 활용하여 유체역학을 적용하려고 시도했지만 생각보다 쉽지 않았다. 프로젝트를 실행하고 IsActive를 On/Off를 반복적으로 실행하면 아래와 같은 오류가 나타난다. ArgumentException: ComputeBuffer.SetData() : Accessing 35100 bytes at offset 0 for Compute Buffer of size 35000 bytes is not possible. 이 오류의 해결방법은 __auxFlexDrawFluid.cs 파일의 245번 줄에 해당하는 내용을 수정해야한다. if (m_indexBuffer != null) { m_.. 2020. 11. 6.
[Unity3D] 마우스 클릭 시 UI인지 3D객체 인지 구별 ✔ Unity3D UnityEngine.EventSystems.EventSystem.current.IsPointerOverGameObject() UI에 가려져있는 3D 오브젝트 객체가 마우스 클릭 시 OnMouseDown()이나 OnMouseUp() 이벤트 콜이 된다. UI인지 판별하는 방법은 간단하다. EventSystem.current에서 현재 클릭한 이벤트에 대한 정보를 확인할 수 있다. public void OnMouseDown() { if (UnityEngine.EventSystems.EventSystem.current.IsPointerOverGameObject() == true) return; // do.. } EventSystem.currrent.IsPointerOverGameObject().. 2020. 10. 16.
[Unity3D] 3D오브젝트 공간 정렬 ✔ Unity3D - 오브젝트 공간 자동 정렬 Object Position Sort 공간에 오브젝트를 특정 한 기준점에서 좌우로 정렬하고 싶은 경우에 사용한다. X, Z방향으로 정렬하고 추가, 제거 가능 using System.Collections; using System.Collections.Generic; using UnityEngine; public class ObjectPositionSort : MonoBehaviour { //테스트를 위한 오브젝트 public GameObject testobj; //기준 포지션 public Transform standardPosition; private Vector3 standardVector; //기준포지션안에 관리될 오브젝트들 private List item.. 2020. 9. 21.
[Unity] Unity에 Visual Studio를 연결하기 ✔ 유니티 설정, 유니티 Visual Studio 2017에연동 먼저 유니티와 Visual Studio 2017 설치가 되지 않았다면 아래 포스트를 참고하세요. https://timeboxstory.tistory.com/31 [Unity] 유니티 기초 탈출기 - Part.0 ✔ 유니티 기초 탈출기 - 유니티 기초 강좌 Part.0 유니티 설치, Visual Studio 설치, 환경 설정 안녕하세요. 개인이 어플을 만드는 시대가 도래하였습니다!!!! 나만의 게임, 어플 등을 만들기까지 기초 강의를 포.. timeboxstory.tistory.com - 유니티에 Visual Studio 등록 - 유니티를 실행합니다. Edit -> Preferences ... 를 클릭합니다. External Tools -> .. 2019. 10. 24.
[Unity] 유니티 기초 탈출기 - Part.0 [Visual 2017 설치, 유니티 설치] ✔ 유니티 기초 탈출기 - 유니티 기초 강좌 Part.0 유니티 설치, Visual Studio 2017 설치 및 다운로드, 환경 설정 안녕하세요. 개인이 어플을 만드는 시대가 도래하였습니다!!!! 나만의 게임, 어플 등을 만들기까지 기초 강의를 포스트하겠습니다. 가장 먼저 해야할일은 환경부터 맞춰야겠죠?? - 유니티 설치 - https://unity3d.com/kr/get-unity/download Download Unity! Unity is the ultimate game development platform. Use Unity to build high-quality 3D and 2D games, deploy them across mobile, desktop, VR/AR, consoles or the.. 2019. 10. 24.