728x90

프로그래밍-1 10

Unity3D에서 자주 쓰고 있는 C# 코드 (8) - OnDrawGizmos(1)

게임을 만들다 보면 뭐가 어디있고 햇갈릴때가 많다. 물론 색깔을 이용하거나 특정 사물을 놓는 형식으로 구분을 할수 있기는 하나 이번에 소개할 것은 게임 작업시에만 보이고 실제 게임에서는 보이지 않는 기즈모를 생성할 것이다. public Color color = Color.blue; public float radius = 1.0f; void OnDrawGizmos(){ Gizmos.color = color; Gizmos.DrawSphere(transform.position, radius); } } 필자는 저 소스를 빈 게임오브젝트 안에 넣고 총구의 앞에다가 넣어보았다. 그렇게 한다면 사진과 같이 보일 것이다. 저 소스 코드가 있는 사물(또는 빈 게임오브젝트) 속에는 파란 색의 1,0f 크기의 구형태의 기즈..

Unity3D에서 자주 쓰고 있는 C# 코드 (7) - Instantiate(1)

우선 어학적 의미를 먼저 알아보자. (출처 : http://endic.naver.com/enkrEntry.nhn?entryId=791746fb4d3044a6a55d554c81ca79cf) 어학사전영어사전instantiate 미국·영국 [instǽnʃièit] 예문보기 예를 들어 설명하다, 예시하다 필자의 생각보다는 의미와 기능이 다소 차이가 있지 않나 생각들기도 한다. instantiate는 주로 무엇인가를 나가게 할때 많이 쓰였다. 주로 총알 같은 오브젝트를 생기게 하고 싶을 때 사용했다. 아래 코드를 보자. public Rigidbody rocketbullet; public float Speed = 10.0f; public void Fire() { Rigidbody newrocket = (Rigidb..

Unity3D에서 자주 쓰고 있는 C# 코드 (6) - LookAt (1)

LookAt이 처음에 무엇인지 몰라 네이버 어학사전에서 찾아보았다. (http://endic.naver.com/enkrIdiom.nhn?idiomId=e50089590e6442d69da9878fc89e5065) 어학사전영어사전look at something 다른 뜻(3건) 예문보기1. ~을 (자세히) 살피다[검토/진찰하다] 2. ~에 대해 생각[고려/검토]하다 이 말에 의미와 크게 다르지 않게 유니티에서도 쓰인다는 점을 알아두었으면 한다. 가장 간단하게 자석과 철가루를 생각하면 쉬울 것이다. 그럼 이제 자석에 의해 나아가는 철가루 소스를 적어보도록 하자. public GameObject magnetic; public int Speed = 20; void Update(){ float distance = V..

Unity3D에서 자주 쓰고 있는 C# 코드 (5) - StartCoroutine (1)

유니티에서 아마 시간 지연을 이용해서 무언가를 구현할 때 가장 많이 사용했지 않나 싶을 정도로 많이 사용중인 문법이다. 아래 코드를 살펴보자. 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 시킴. Sta..

Unity3D에서 자주 쓰고 있는 C# 코드 (4) - OnMouse (1)

유니티를 사용하다보면 마우스로 조작을 해야할 때가 있다. 그럴때 간단하게 효과를 줄수 있는 기능을 소개하고자 한다. 버튼 부분에 응용하면 괜찮을 거 같다. public class Button1 : MonoBehaviour { public Color OriginColor; //본래 자신의 색상. void Start () { OriginColor = guiTexture.color; } void OnMouseEnter(){ //마우스를 guiTexture에 올려 논 상태라면, 색상이 빨갛게 변함. guiTexture.color = Color.red; } void OnMouseExit(){ //마우스를 guiTexture에 올려 논 상태가 아니라면, 색상이 본래 자신의 색상으로 변함. guiTexture.col..

Unity3D에서 자주 쓰고 있는 C# 코드 (3) - GUI , OnGUI , 3D Text (1)

화면 상에 글씨나 그림을 표현하는 방법은 무궁무진하다. 게임을 해보았으면 화면에 글씨나 시간, 그림 이펙트등이 표시되는 것을 볼 수 있을 것이다. 모든 게임엔 이러한 요소들이 존재한다. 오늘은 유니티로 표현할 수 있는 이러한 것들을 간단하게 설명하고자 한다. 1. GUI Text ,GUI Texture GUI Text는 필자가 가장 많이 사용하는 텍스트이다. 사용법도 간단하고 무엇보다도 갖자기 숫자와 글씨를 표현할 수 있다는 장점을 가지고 있다. 아래 예제를 보자. GUIText heart; Int heartCnt = 3; void Update () { heart.guiText.text = "X " + heartCnt; } 위의 예제는 숫자를 표현한 것이지만, 글자로도 표현이 가능하다. 위 사진을 보면 ..

Unity3D에서 자주 쓰고 있는 C# 코드 (2) - 충돌 관련 부분 (1)

※ 현재 유니티 개발을 하지않습니다. 참고용으로만 참조 부탁드립니다. 게임을 진행하다보면 플레이어와 물체가 부딫쳐야 하는 경우가 발생한다. 필자 같은 경우 크게 4가지를 고려한다. 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...

Unity3D에서 자주 쓰고 있는 C# 코드 (1) - player 움직임 부분 (1)

※ 설명하기에 앞서서 Unity3D의 기초를 익힌 상태에서 보는 것이 이해가 빠를 것이라고 생각된다. 1. 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); //위아래. /..

728x90