티스토리 뷰

Study

Unity3D(유니티3D) 관련

메디츠 2024. 1. 7. 11:10
반응형

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 파일에 파라미터 전달

 

반응형
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
글 보관함