본문 바로가기

Unity

(16)
[Unity] 자주쓰는 함수_(5) StartCoroutine 유니티에서 아마 시간 지연을 이용해서 무엇인가를 구현할 떄가 있다. 아래 코드를 보자 void OnCollisionEnter(Collision other) { if(other.transform.tag == "trap" || other.transform.tag =="Bullet"){ //tag가 trap이거나 Bullet라면, rigidbody.velocity = Vector3.up * jump * 1.5f *Time.deltaTime; //(rigidbody가 적용된 상태에서) up방향으로 잠시 이동. gameObject.transform.collider.enabled = false; //게임오브젝트의 collider를 enabled 시킴. StartCoroutine(Die(0.01f)); //IEnum..
[Unity] 자주쓰는 함수_(4) OnMouse 유니티를 사용하다보면 마우스로 조작을 해야할 때가 잇다. 그럴때 간단하게 효과를 줄수 있는 기능을 소개하고자 한다. 버튼 부분에 응요하면 되겠다. public class Button1 : MonoBehaviour { public Color OriginColor; //본래 자신의 색상. void Start () { OriginColor = guiTexture.color; } void OnMouseEnter(){ //마우스를 guiTexture에 올려 논 상태라면, 색상이 빨갛게 변함. guiTexture.color = Color.red; } void OnMouseExit(){ //마우스를 guiTexture에 올려 논 상태가 아니라면, 색상이 본래 자신의 색상으로 변함. guiTexture.color = ..
[Unity] 자주쓰는 함수_(3) GUI, OnGUI, 3D Text 화면상에 글씨나 그림을 표현하는 방법은 아주 많다. 게임을 해보았으면 화면에 글씨나 시간, 그림 이펙트등이 표시되는것을 볼 수 있을 것이다. 모든 게임엔 이러한 요소가 있다. 1. GUI Text, GUI Texture GUI Text 많이 사용되는 텍스트이다. 사용방법도 간단하고 무엇보다 많은 숫자와 글씨를 표현할 수 있다. GUIText heart; Int heartCnt = 3; void Update () { heart.guiText.text = "X " + heartCnt; } 위 예제는 숫자를 표현한 것이지만 글자로도 표현 가능하며 GUI Texture를 이용한 하트모양의 이미지가 뛰어져있다. 저 이미지는 코드로 구현 하지 않아도 된다. 2. OnGUI public GUISkin menuskin..
[Unity] 자주쓰는 함수_(2) 충돌 게임을 진행하다보면 플레이어와 물체가 부딪쳐야 하는 경우가 발생한다. 다음 사항을 고려해보자 1. OnCollisionEnter 충돌체 간 충돌을 감지하여 충돌시 이벤트를 발생시킨다. Tag같이 물체를 구별할수 있는 식별자를 사용하자 void OnCollisionEnter(Collision other){ if(other.transform.tag == "cube" || other.transform.tag == "door" ){ //충돌한 tag가 cube 또는 door 라면 JumpB가 참. JumpB = true; } if(other.transform.tag == "JumpUp"){ /* 1.5와 jump변수값을 곱한 힘의 백터 위의 방향으로 힘을 가함.*/ rigidbody.velocity = Vect..
[Unity] 자주쓰는 함수_(1) Player 움직임 Player 움직임 player를 움직이게 만드는 명령어, 변수를 곱해도 되여 Time.deltaTime을 이용함으로써 모든 성능에서 동일하게 동작하게 함 float h= Input.GetAxis("Horizontal")* Time.deltaTime; transform.Translate(Vector3.right* h* 100 *Time.deltaTime); //좌우. float v= Input.GetAxis("Vertical")* Time.deltaTime; transform.Translate(Vector3.up* h* 100 *Time.deltaTime); //위아래. p점프를 하게 하는 부분은 매우 다양하다. 그중에 2개를 예로 들겟다 - bool 함수를 이용하는 방법 bool JumpB = true..
[Unity] MonoBehaviour Life Cycle using UnityEngine; using System.Collections; public class NewBehaviourScript : MonoBehaviour { float cnt=0; void Reset(){ Debug.Log("Reset"); } void Awake(){ Debug.Log("Awake"); } void OnEnable(){ Debug.Log("OnEnable"); } void Start(){ Debug.Log("start"); } void FixedUpdate(){ Debug.Log("FixedUpdate"); } void Update (){ Debug.Log("Update"); if ((cnt+=Time.deltaTime) >1.0f) Destroy(this.gameObjec..
[Unity] Unity 3D 최적화 하기 1. 프로파일러를 이용해서 병목 현상 체크하기 - Window → Profiler 메뉴를 이용한다. 2. 컬링 기법 이용하기 - 프러스럼 컬링 ( Frustum Culling ) : 레이어별로 컬링 거리를 따로 지정 가능한다. - 오클루전 컬링 ( Occlusion Culling ) : Window → Occlusion Culling 메뉴를 이용한다. 3. 드로우콜 체크하기 - 드로우콜은 게임 오브젝트에 설정된 재질의 셰이더 패스당 하나씩 일어난다. - 렌더러에 사용한 재질의 수만큼 드로우콜이 발생한다. - 드로우콜의 밸생을 최소화 하기 위해서는 성질이 동일한 물체는 하나의 메쉬와 재질을 사용하도록 통합하자 ( 이를 위해 최상위 오브젝트에 사용할 수 있는 CombineChildren 컴포넌트가 scrip..
[Unity] 유니티 게임엔진의 탄생 유니티 3D 게임엔진의 탄생 유니티 3D는 2D, 3D 게임 엔진이다. 게임엔진은 게임 개발에 필요한 여러 기능을 제공하여, 쉽게 게임을 만들 수 있게 돕는다. 이러한 게임 엔진이다. 이러한 게임엔진을 이용하면 게임 개발 시 생산성과 작업 능률을 높일 수 있다. 기존의 게임엔진은 상용 게임 엔진으로부터 무료 게임 엔진까지 그 수가 무척 많다. 대표적인 상용 게임 엔진으로는 언리얼( Unreal ), 크라이( CryENGINE ) , 하복 ( Havok ) 등이 있다. 이런 고성능 게임 엔진은 높은 가격 때문에 게임을 개발하려는 개인이나 학생이 접하기에는 어려웠던 것이 최근까지의 현실이다. 유니티 개발사가 말하는 " 게임 개발의 민주화" 라는 표어는 " 이러한 현실에서 벗어나 누구나 쉽게 게임을 만들 수 ..