분류 전체보기
-
as 또는 is를 이용한 형 변환 (Type conversion using as or is)카테고리 없음 2021. 10. 21. 17:17
상속을 이용하여 코드를 작성하다 보면 기반 클래스로 생성을 하고 하위 클래스의 속성을 가져와 생성하거나 반대로 하위 클래스를 기반 클래스처럼 사용할때가 있습니다. 이런식으로 코드를 작성하다보면 기반 클래스와 하위 클래스간에 속성변환이 필요할때가 있는데, 이를 위해서 C#에서는 is와 as 연산자를 제공합니다. *기반 클래스에서 하위 클래스로 캐스팅 되는것을 다운캐스팅, 하위 클래스에서 기반 클래스로 캐스팅 되는것을 업캐스팅이라고 합니다. 1. is 형 변환 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 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50..
-
확장 메서드 (Extension Method)카테고리 없음 2021. 10. 20. 10:24
확장 메서드란 기존 클래스의 기능을 확장하는 기법입니다. 예를들어 문자열 뒤에 "반갑습니다"를 붙여주는 확장 메서드를 제작하는것을 보여드리겠습니다. 1. 코드작성 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 public static class Test { public static string ReturnHello(this string word) { return word + "반갑습니다."; } } public class Test2 : MonoBehaviour { string wellcome; private void Start() { wellcome.ReturnHello(); } } Colored by Color Scripter cs 문자열 뒤에 "반갑습니다"를 반환하는 확장..
-
얕은 복사와 깊은 복사 (Shallow copy and deep copy)유니티 개발/C# 2021. 10. 11. 16:07
이전에 게임을 만들던중 Monster라는 동일 클래스를 복사해서 서로 능력치가 다른 몬스터를 만들어 보려 한적이 있습니다. 몬스터라는 클래스를 Monster cat = new Monster() 로 초기화 시키고 그 클래스에 있는 speed 라는 변수를 조절한다음, Monster dog = cat; 으로 복사하여 다시 speed를 조절해 각자 속도가 다른 고양이와 강아지를 만들어 보려고 했었죠. 허나 게임을 실행하자 고양이와 강아지는 서로 같은 속도로 움직였습니다. 왜 이런일이 발생했을까요? 1. 얕은복사 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 public class Monster { public int speed; } public class Test : MonoBeha..
-
가변 인수가 있는 메서드 (Method with variable arguments)유니티 개발/C# 2021. 10. 4. 18:07
*본 게시글은 독자에게 설명하는 글이 아닌 개인 학습내용을 정리한 글입니다. 참고 부탁드립니다. C#을 다루다 보면, 메서드에서 받아오는 인수의 갯수나 형태가 다양하게 들어가야하는 경우가 있습니다. 이러한 경우에 똑같은 기능을 하는 다른 메서드를 생성하기보다 가변적 인수를 오버로딩이나 배열단위로 받아오는 법을 알아보도록 하겠습니다. 예제는 유니티를 사용해서 제작했습니다. 1. 메소드 오버로딩 메소드 오버로딩은 다양한 형식의 인수를 같은 메서드로 받아오는 것을 뜻합니다. 예를들어 계산기를 구현한다고 했을때, 소수점을 받아야 할수도 있고 정수를 받아야 할수도 있습니다. 이를 소수점을 받는 메서드, 정수를 받는 메서드로 따로 제작하기보다 오버로딩이라는 기능을 사용하면 코드를 간결하게 짤수있습니다. 1 2 3 ..
-
유니티 기기에 따른 가변 해상도 조절하기 (Adjusting the variable resolution in Unity, depending on the device.)유니티 개발/학습노트 2021. 9. 29. 18:49
*본 게시글은 독자에게 설명하는 글이 아닌 개인 학습내용을 정리한 글입니다. 참고 부탁드립니다. 새로운 프로젝트를 시작하는 도중 해상도 조절에 대해 공부해야겠단 생각이 들어서 정리할 겸 글을 작성하게 되었습니다. 1. 문제점 유니티로 제작한 게임이 다양한 플랫폼에서 돌아가는것을 생각해보면 각자의 플랫폼에 최적화되어있는 해상도에 맞춰 게임도 해상도가 변경되어야 한다고 생각합니다. 만일 이를 고려하지않고 게임을 제작하게 된다면 모바일 게임을 예로 들었을 경우 특정 기기에선 잘 보이는 사물이나 UI가 어떤 기기에선 잘 안 보이거나 잘릴 수도 있습니다. 2. 해결법 a) 캔버스 조절하기 UI를 표시하는 캔버스의 캔버스 스케일러를 조절해야 합니다. UI Scale Mode는 해당 캔버스에서 UI가 스케일 되는 방..
-
유니티에서 타자 효과 적용하기 (How to apply a typing effect in unity)유니티 개발/팁 2021. 9. 27. 14:57
*투고에 앞서 본 블로그의 게시물들은 필자가 개인적으로 학습한 내용을 정리하고 공유하기 위한 내용이므로 불충분하거나 비효율적인 부분이 있을 수 있음을 알립니다. 1. 개요 게임에서 NPC나 캐릭터 간에 대화는 필수적입니다. 모든 것을 음성만으로 완벽히 전달할 수 있다면 모르겠지만, 스토리의 전개를 위해서도 텍스트는 필연적으로 들어가게 됩니다. 이런 텍스트를 단순하게 화면에 띄우기만 한다면 플레이하는 사람의 흥미를 끌어내기 어려울 것입니다. 어릴 때 다들 해본 레트로 게임에서 타자를 치듯 텍스트를 보여주는 이펙트를 기억하시나요? 이러한 효과는 단순하지만, 저처럼 비전공자나 처음 개발을 하는 사람에게는 적용이 어려울 수도 있습니다. 이번 게시물에서는 위의 예시처럼 타자를 치는듯한 효과를 만들어 보고자 합니다..