티스토리 뷰
2012년 5월 기준.
Unity Editor 설정
Edit->Preferences
External Tools의 Exteranl Script Editor에서 MS Visual Studio 선택
Unity SVN 사용시 파일관리를 위한 설정
Unity는 파일을 생성하고 지우는 작업이 빈번해서 버전관리가 어려우므로 설정해둬야 함.
Edit->Project Settings->Editor
의 Version Control의 Mode를 Meta Files로 설정
애셋이 .meta 파일로 저장됨
SkyBox 설정
Edit > Render Settings에서
Skybox Material 설정
Input 설정
Edit > Project Settings > Input
리지드 바디 및 구 충돌체 추가
Component > Physics > Rigidbody
// 리지드 바디
Component > Physics > Sphere Colider
// 구 충돌체
프리팹 생성
Project의 Create 목록의 Prefeb
Hierachy의 GameObject를 드래그해서 설정
// 구 충돌체 경우 Is kenematic 체크 해제
kinetic은 동역학으로서 운동을 일으키거나 정지시키거나 하는 움직임에 대한 힘
kinematics는 신체분절의 움직임. 즉, 테니스의 내회전 같은 동작들. 힘과 양을 고려하지 않은 변위나 속도, 가속도 사이의 관계를 나타내는 것.
가장 큰 차이점은 힘과 양의 고려여부.
2D 이동 반경 제한
Rigidbody > Constraints
Freeze Position Z
Freeze Rotation X, Y
충돌체 크기 조절
Scale을 늘리는 것이 아니라 Size를 늘려야 한다.
스프라이트 생성
GameObject > Create Empty
Sprite Scirpt 추가
Sprite Material에 Material 추가
충돌체를 인식못하는 현상
Z값이 잘못 되어있는 경우
bundle identifier has not been setup correctly 에러
Other Settings의 Identification에서
Bundle Identifier에서 Company 및 Name 설정
// 3D Text Color 설정
void Start () {
GameObject obj = GameObject.Find("Num");
TextMesh txt = obj.GetComponent<TextMesh>();
renderer.material.color = Color.red;
}
// GetComponent 방식
GameObject obj = GameObject.Find("Num");
TextMesh txt = obj.GetComponent<TextMesh>();
TextMesh txt = (GetComponent("TextMesh") as TextMesh);
Unlit/Sprite
// Font가 투영이 안됨
3D Text를 사용할 시에는 Unlit/Texture로 작업
3D Text 기본폰트 Arial의 font material 클릭시 None으로 변하니 주의
Unity3D SVN 관련
프로젝트를 닫고 나서 커밋
(prefab같은 자원들은 사용중이므로 커밋이 안됨)
Clean up을 할때 주의
(Revert all changed recursiverly 때문에 날아가는 경우)
obj,Temp 파일은 커밋하지 말것
솔루션(csproj, sln)도 커밋안하는게 좋은듯
string str = "test";
str = GUI.TextField(new Rect(10, 10, 20, 20), str, 200);
// input text는 저 메소드로만 생성 가능
guiText는 좌표개념이 다르다
// 0~1까지 화면에 x,y 좌표
GUI.Label(new Rect(10, 10, 200, 200), "properties");
// 라벨은 해당위치에 글씨만 생성
GUI.Box(new Rect(10, 10, 200, 200), "box");
// 박스는 가운데 이름적힌 박스생성
GUI.TextField(new Rect(10, 10, 20, 20), "d", 200);
// 텍스트필드 생성
GUI.TextArea(new Rect(10, 10, 20, 20), "d", 200);
// 텍스트에리어 생성
if (GUI.Button(new Rect(170, 286, 60, 40), "OK"))
Debug.Log("Clicked");
// GUI Button은 이런식으로 사용
// file I/O가 들어간 프로그램은 Web Player나 Flash로 컴파일이 되지 않는다
Quaternion qt = go.transform.rotation;
Vector3 vec = qt.eulerAngles;
vec.z = angle;
qt.eulerAngles = vec;
go.transform.rotation = qt;
Mathf.Floor(Time.time);
// 수학관련 함수 Mathf, 시간관련 함수 Time
Random.Range(min, max);
// 랜덤함수
// rotate 함수는 값만큼 더해주고, rotation은 값을 대입.
car.transform.Rotate(0, -90, 0);
car.transform.rotation = Quaternion.Euler(0, car.transform.rotation.y-rotation, 0);
unity3d 충돌체크 함수
OnCollisionEnter(Collision collision) : 충돌 지점에 진입할 때
OnCollisionStay(Collision collision) : 충돌중.
OnCollisionExit(Collision collision) : 충돌 지점에서 벗어날 때
OnTriggerEnter(Collider other) : 트리거와 접촉 시작
OnTriggerStay(Collision collision) : 트리거와 접촉 중
OnTriggerExit(Collision collision) : 트리거와 접촉 종료
RigidBody 충돌 박스가 물체에 포함되있는 경우 발동한다.
Trigger의 경우 물리현상은 발생하지 않고, 단순히 충돌 되었다는 ' 이벤트 ' 만을 리턴하며
Collision의 경우 이벤트와 물리현상을 동시에 발생 시킬수 있다.
충돌 박스에서 Trigger 변수가 꺼져있으면 OnCollision 류의 함수가 발동되고
아닌경우 OnTrigger류의 함수가 발동된다.
void OnCollisionEnter(Collision collision)
{
Debug.Log("collision");
// 충돌 물체의 이름
Debug.Log("Crash Object name is : " + collision.gameObject.name);
// 이름으로 구분
if(collision.gameObject.name == "asdf")
{
Debug.Log("Crash Object name is : " + "asdf" );
}
// 태그로 구분
if( collision.gameObject.tag == "tagBigBox")
{
Debug.Log( "Crash Object tag is : tagBigBox" );
}
// 스크립트 내부 값으로 구분
if( collision.gameObject.GetComponent<Age>(). m_nAge == 11 )
{
Debug.Log("Crash Object age is " + collision.gameObject.GetComponent<Age>().m_nAge );
}
}
Unity3D(유니티3D) MySQL 연동
http://forum.unity3d.com/threads/63364-Unity-with-MySQL
// html에 데이터받아서 project.unity3d 파일에 파라미터 전달
'Study' 카테고리의 다른 글
HAProxy(에이치에이프록시) 관련 (1) | 2024.01.07 |
---|---|
Spring(스프링) Error(에러) 관련 (1) | 2024.01.07 |
Linux(리눅스) Mail Server(메일서버) Setting(세팅) (0) | 2024.01.07 |
C++(씨플플) inline function(인라인 함수) 관련 (0) | 2024.01.07 |
CentOS(센트오에스) mysql(마이에스큐엘) install(설치) 관련 (1) | 2024.01.07 |