콘스탄트 포스(Constant Force)는 오브젝트에 특정한 속성의 힘을 계속 주는 구성요소입니다. Add Component > Physics > Constant Force 를 통해 추가 가능 합니다. 속성들 Force 해당 방향으로 밀어내는 힘입니다. Relative Force 상대적인 방향으로 밀어내는 힘입니다. Torque 해당 축을 기준으로 회전 합니다. Relative Torque 상대적인 방향으로 회전합니다. (참고 : 유니티 스크립트 레퍼런스 - ConstantForce )
스크립트를 게임오브젝트(GameObject)단위로 관리하다보면 생기는 문제가 다른 게임오브젝트에 있는 스크립트를 호출해야 하는 경우입니다. 1. 오브젝트 찾기 유니티에서 오브젝트를 찾는건 쉽습니다. (유니티 : 유티니 스크립트 레퍼런스 - GameObject ) FindWithTag FindGameObjectsWithTag Find 이것이 다 오브젝트를 찾기위한 메소드 들입니다. 'FindGameObjectsWithTag'는 아래와 같이 사용합니다. (유니티 : 유티니 스크립트 레퍼런스 - GameObject.FindGameObjectsWithTag) //태그를 검색한다. GameObject[] goTempList = GameObject.FindGameObjectsWithTag("Box"); //검색된 ..
유니티에서 탄성을 쉽게 적용할 수 있도록 'Physic Materials'라는 것을 지원합니다. 이것을 이용하여 탄성을 적용해 봅시다. 0. 준비 큐브를 이용하여 바닥을 만들고 또다른 큐브를 생성한후 '중력(Rigidbody)'과 '충돌체(Box Collider)'를 적용해 줍니다. 1. 'Physic Materials' 불러오기 'Project'탭에서 오른쪽 클릭 Import Package > Physic materials 를 선택한후 임포트 해줍니다. 2. 탄성 적용하기 이제 큐브의 '충돌체'의 속성을 보면 'Material'이라는 것이 있습니다. 이것을 'Bouncy'로 바꿔 줍니다. 이제 실행해 봅니다. 3. 탄성 조절 하기 그냥 이대로 실행하면 통통통 튀어 다닙니다. 아주 잘튀죠. 탄성을 조절 ..
'OpenCVSharp'의 설명페이지에는 별도의 작업 없이 'OpenCVSharp.dll'만 참조하면 mono에서도 'OpenCVSharp'를 사용 할수 있다고 나와 있습니다. (참고 : OpenCVSharp - Tutorial_UnixPlatforms) 'ml'와 'cvblob'는 컴파일을 다시 해서 사용하라고 나와있습니다. ('OpenCVSharp'의 소스를 받아보면 모노를 구분하여 작성된 코드들이 보입니다. 이것으로 보아 모노를 지원하는 것이 맞는것 같네요.) 그런데 테스트 프로그램을 만들어서 돌려보니 안됩니다-_-; Mono로 작성해보니 윈도우 스타일로 하면 안되겠다는 생각이 드네요-_-; 1. 준비하기 일단 우분투에 'OpenCV'를 설치 해야 합니다. 'OpenCV'의 버전은 'OpenCVSh..
이전 글에서 취생몽사님 께서 만드신 샘플을 약간만 수정하면 스크립트가 적용된 오브젝트를 클릭한 효과를 구현 할 수 있습니다.(참고 : [Unity] 오브젝트 드래그 하기) 1. 코드이전 코드와 달라진 것은 스크립트가 들어 있는 오브젝트와 클릭판정을 받은 오브젝트가 같은지 확인하는 코드가 추가됩니다. using UnityEngine; using System.Collections; public class claMouseClick : MonoBehaviour { Camera _mainCam = null; /// /// 마우스의 상태 /// private bool _mouseState; /// /// 마우스가 다운된 오브젝트 /// private GameObject target; /// /// 마우스 좌표 //..
오브젝트 클릭했을 때 반응하는 샘플을 찾다가 좋은 샘플이 있어서 소개합니다. 클릭한 오브젝트를 드레그(drag)하는 샘플입니다. 1. 코드이 코드는 카메라를 직교투영(Projection > Orthographic)으로 설정하고 테스트했습니다.데브코라아의 취생몽사님의 자료입니다.제가 코드를 좀 정리하고 주석을 달았습니다. 자료출처 : 데브코리아 - 취생몽사님의 답변 using UnityEngine; using System.Collections; public class claMouseClick : MonoBehaviour { Camera _mainCam = null; /// /// 마우스의 상태 /// private bool _mouseState; /// /// 마우스가 다운된 오브젝트 /// private..
제가 유니티의 구조를 잘못 알고 있는지 좀 이해하기 힘든 코드를 많이 보게 됩니다. 1. 문제 발견 박스충돌체(BoxCollider)의 크기를 수정하기 위해 속성을 타고 들어갔는데.... 글쿤요. 일반적인 객체지향프로그래밍에서 자주 목격되는 메시지죠 ㅎㅎㅎ 말 그대로 해당 속성이 읽기전용이라는 소리죠. 해당 속성의 선언을 확인 해 봅시다. 박스충돌체를 수정하려면 GameObject.collider.bounds.size 를 수정해야 합니다. 그런데 시작부터 읽기전용이라니.... 2. 해결 방법 인터넷을 뒤져보니 'BoxCollider'로 캐스팅을 한 후 수정하면 된다고 합니다. 그래서 제가 한번 해봤습니다. ((BoxCollider)[GameObject].collider).size = new Vector3..
리지드바디는 물리에 관련된 동작을 하도록 만드는 객체 중 하나입니다. 보통 중력 관련한 작업을 할 때 추가하게 되죠. 1. 속성 추가 Add Component > Physics > Rigidbody 를 통해 추가할 수 있습니다. 2. 하위 속성들 참고 : Unity Documentaion - 리지드바디 Mass 질량. Drag 저항력. 높을 수록 속도가 빨리 줄어 듭니다. Angular Drag 회전 저항력. 회전할때 빨리 멈춥니다. Use Gravity 중력을 적용할지 여부 Is Kinematic 물리효과를 적용하지 않을지 여부입니다. 체크되있으면 물리효과가 적용되지 않습니다. Interpolate 렌더링 프레임을 부드럽게 보기게 하기위한 보간기능입니다. Interpolate : 이전 프레임의 위치기반..