빌보드라는 것은 노래 차트가 아니고.... 3D에서 사용자가 보는 화면은 카메라가 보는 시점입니다. 카메라가 움직이거나 회전해도 카메라를 향해서 바라보는 오브젝트(기능?)를 빌보드(Billboard)라고 합니다. 1. 'transform.LookAt'사용 하기 'transform.LookAt'은 지정한 위치를 계속 바라보게 하는 메소드입니다. (참고 : 유니티 스크립트 레퍼런스 - Transform.LookAt) 그냥 타겟만 정하면 알아서 바라봅니다. 이것을 카메라로 지정하면 카메라를 계속 보고 있게 됩니다. 문제는 'z'축이 바라보기 때문에 다른 축은 원하는 방향을 보게 할 수가 없죠. 그러니 다른 축을 바라보게 하기 위해서는 그룹이 되는 오브젝트를 넣고 z축을 카메라 방향으로 두고 돌리려는 오브젝트를..
케릭터를 기준으로 화면이 돌아가는 것은 쉽게 볼 수 있는 연출입니다. 그런데 '유니티는 왜이렇게 자료가 없지?'라는 생각을 했는데...제가 단어 선택을 잘 못한것 같네요 ㅎㅎㅎ 1. 'transform.Rotate'와 'transform.RotateAround'의 차이 'transform.Rotate'는 객체를 자기중심으로 제자리에서 회전시키는 것입니다. 'transform.RotateAround'는 지정된 좌표를 중심으로 회전 시키는 것입니다. (참고 : 유니티 스크립트 레퍼런스 - Transform.Rotate, Transform.RotateAround) 그래서 'transform.RotateAround'의 경우 매개변수로 전달되는 앵글만큼 오브젝트가 지정된 좌표를 기준으로 회전합니다. 2. 코드 작..
오브젝트를 클릭했을 때 무언가 동작하기 위해서는 이전에 썼던 포스팅만으로 충분합니다. 참고 : [Unity] 스크립이 적용된 오브젝트에 클릭 구현하기 문제는 이것이 'Physics.Raycast'를 이용하는 것인데 이것은 충돌체를 날려서 제일 처음 부딪친 오브젝트를 반환한다는 것입니다. 1. 문제 확인 큐브를 이용하여 큐브를 만들어 봅시다. 바닥을 클릭하면 안에 있는 큐브가 다른 위치로 이동하는 샘플을 만들어 봅시다. 위와 같이 큐브를 만들고 안에 큐브를 넣었습니다. 다른 포스팅에서 만들었던 클릭 클래스를 바닥에 적용합니다. (참고 : [Unity] 스크립이 적용된 오브젝트에 클릭 구현하기) 아래는 테스트용 스크립입니다. using UnityEngine; using System.Collections; p..
오브젝트의 텍스쳐를 가지고 와야 하는 경우가 있습니다. 자주 있을 것 같지는 않지만 말이죠 ㅎㅎㅎ 방법 이럴때 사용하는 것이 'GetTexture'입니다. gameObject.renderer.material.GetTexture 참고 : 유니티 스크립트 레퍼런스 - Material.GetTexture 마무리 그런데 이런일이 얼마나 있을런지는? ㅎㅎㅎㅎ
'3D Text'를 사용하려고 화면에 올려 놨더니.... 위 스크릿 샷을 보면 같은위치에 있는 3d text를 다른 방향에서 보았을때 항상 다른 오브젝트를 무시하고 화면에 텍스트가 출력되는걸 볼 수 있습니다. 이것만 봐서는 '3D Text'의 기본 동작이 게임 오브젝트(Game Object)가 아니라 'UI'인것 같습니다. 우리가 원하는건 '3d text'가 다른 오브젝트들 처럼 다른 오브젝트 뒤로 가면 뒤로 간 부분은 보이지 않았으면 하는 것인데 말이죠. 1. 해결방법 검색을 해보니 '3D Text'의 기본 쉐이더는 'GUIText'라고 합니다. 어쩐지 -_-;; 결국 새로운 쉐어더를 만들어야 하나 봅니다. 다행히 이것을 설명한 자료를 찾았습니다. 참고 : 유니티3D 위키 - 3DText 여기의 설명에..
콘스탄트 포스(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"); //검색된 ..
물리엔진이 적용된 주사위의 가장 큰 문제는 값이 뭐가 나왔는지 알 수 없다는 것입니다 ㅡ,.ㅡ; 주사위의 회전을 물리엔진이 담당하니 어떤 값이 위로 올라왔는지 확인할 수가 없죠. 1. 해결 방법 이 문제를 해결하려면 맨 위로 올라온 오브젝트를 찾아 값을 체크하는 방법뿐입니다. 이 '맨 위로 올라온 오브젝트'가 무언인가에 따라 다르죠. 몇 가지 방법이 있습니다. (1) 매쉬를 각 면 단위로 분리한다. (3D경우) (2) 특정 위치의 점이나 면의 위치값을 비교한다. (3) 위치 확인용 모델을 추가한다. 여기서 가장 간단한 방법은 (3)번입니다. 주사위에 들어간 숫자가 너무 많다면 (1)번이 더 좋을 수도 있습니다. 이렇게 오브젝트를 구성하였으면 구성한 오브젝트의 위치를 비교하여 가장 위에 있는 오브젝트를 숫..
유니티에서 탄성을 쉽게 적용할 수 있도록 'Physic Materials'라는 것을 지원합니다. 이것을 이용하여 탄성을 적용해 봅시다. 0. 준비 큐브를 이용하여 바닥을 만들고 또다른 큐브를 생성한후 '중력(Rigidbody)'과 '충돌체(Box Collider)'를 적용해 줍니다. 1. 'Physic Materials' 불러오기 'Project'탭에서 오른쪽 클릭 Import Package > Physic materials 를 선택한후 임포트 해줍니다. 2. 탄성 적용하기 이제 큐브의 '충돌체'의 속성을 보면 'Material'이라는 것이 있습니다. 이것을 'Bouncy'로 바꿔 줍니다. 이제 실행해 봅니다. 3. 탄성 조절 하기 그냥 이대로 실행하면 통통통 튀어 다닙니다. 아주 잘튀죠. 탄성을 조절 ..
이전 글에서 취생몽사님 께서 만드신 샘플을 약간만 수정하면 스크립트가 적용된 오브젝트를 클릭한 효과를 구현 할 수 있습니다.(참고 : [Unity] 오브젝트 드래그 하기) 1. 코드이전 코드와 달라진 것은 스크립트가 들어 있는 오브젝트와 클릭판정을 받은 오브젝트가 같은지 확인하는 코드가 추가됩니다. using UnityEngine; using System.Collections; public class claMouseClick : MonoBehaviour { Camera _mainCam = null; /// /// 마우스의 상태 /// private bool _mouseState; /// /// 마우스가 다운된 오브젝트 /// private GameObject target; /// /// 마우스 좌표 //..