본문 바로가기
반응형

C#24

C# 유니티 공부 15 - 2D 슈팅 게임 예제. (아이템 획득 및 사용 로직, ★배경 패럴릭스/스크롤링 기법, ★오브젝트 풀링) * 아이템 획득 및 사용 로직 - 적 비행기 파괴 시에 생성되도록 설정. - 오브젝트 풀링 최적화로 Destroy가 아닌 SetActive로 설정. - random.ragne를 이용하여 아이템 생성 확률 조정. * 배경 원근법 (패럴릭스) - 배경 사진을 여러장 사용. - 가까운 배경그림은 속도를 빠르게, 멀리 있는 배경그림은 속도를 느리게 하여 원근법 효과 발생. (속도는 배경 스크립트를 생성하여 Public 변수로 설정.) - 횡스크롤 게임에서 주로 사용. * 배경 스크롤링 - 해당 종스크롤에서는 y축을 기준으로 하여 아래 배경을 위로 옮겨주어 무한적으로 배경을 만들어주는 방법. - 횡스크롤에서는 x축을 기준으로 하면 될듯. - 카메라 Size에 대한 이해 필요. - 로직에 대한 구제적인 이해 필요... 2022. 12. 16.
C# 유니티 공부 14 - 2D 슈팅 게임 예제. (Prefabs 프리펩, Instantiate함수, Destroy 함수) 0. 핵심.. Prefabs 사용(프리펩) - 이미지를 추가 후, 다시 Assets 창으로 옮겨주면 Prefabs 형태로 사용 가능. - 총알 발사 등, 여러 이미지가 들어가는 경우에 이미지를 직접 삽입할 필요가 없이 효율적으로 사용 가능. 1. 화면 비율 조정. - 모바일 빌드를 목표로 하였고, Aspect Ratio 9:19 비율로 제일 먼저 조정. 2. 비행기 움직임 및 비행기 애니메이션 3. 비행기 총알 발사 - Instantiate() 함수 이용 Instanitiate(생성되는 오브젝트 종류, 생성되는 오브젝트 위치, 생성되는 오브젝트의 회전) - 총알이 발사되는 속도는 아래 2가지 변수로 조정. public float MaxBulletSpeed; public float CurBulletSpee.. 2022. 12. 15.
C# 유니티 공부 12 - 키보드 타자 애니메이션(Typing), UI 대화창, 초상화 애니메이션 * 대화창 애니메이션 1) 대화창이 아래에서 위로 올라오는 애니메이션 - 애니메이터 하나 생성하여 대화UI에 추가. - 빈 애니메이션 생성하고 - 파라미터 bool 값 생성. (IsShow.... 보여주고있는가?) - 애니메이션 2개 더 생성. (토크중의 애니메이션 애니메이션 중지) - 대화창 아래로 내려놓기? (아래에서 위로 올라오는 애니메이션) - GameManger에 가서 애니메이션 코딩 진행. 기존 게임오브젝트에서 가져오던 talkpanel을 Animator에서 가져오는 것으로 변경. talkpanel.setbool("IsShow", isactuon... true인지 false이지...) - GameMager에서 Hiarachy 다시 집어넣어주기. (게임오브젝트에서 애니메이터로 변경했기 때문에) .. 2022. 12. 12.
C# 유니티 공부 11 - 퀘스트 코딩, 재귀함수, 오버로딩, Dictionary 활용. 1. 퀘스트 데이타, 스크립트 생성. (구조체) (상속 기능 필요없음.. 직접 불러서 쓸 것) - 퀘스트 네임, npc ID(배열) 2가지 변수 생성. - 구조체 생성을 위한 매개변수 생성자를 작성해주어야 함. pulbic 퀘스트데이타(퀘스트 네임, npc id) { 퀘스트네임 = 네임; npc id = npc; } 2. 퀘스트 매니저, 스크립트 생성. - 퀘스트ID 변수 생성. - Dictionary 퀘스트리스트(변수명) 생성. - 데이타 저장 함수 생성. - 데이타 저장 함수 내부에 Dictionary.Add 로 데이터 저장. 퀘스트리스트.Add(10, new 퀘스트데이타("퀘스트네임", new int []{npc id}) 이것을 사용하려면 구조체 생성자를 미리 작성해주어야 함. - int 퀘스트액션.. 2022. 12. 11.
C# 유니티 공부 5 - 예제 프로젝트 (3d 물리 이동, Scene 전환, UI, 사운드 삽입, 카메라 이동) * Player 1) 무한 점프 제한 - 계산기의 IsNewNum 응용. - Isjump라는 bool형 변수를 생성하여 활용. - Public Float jumpPower를 유니티상에서 조절할 수 있게 하였지만, 그냥 코드에 숫자를 집어넣어도 됨. 2) 상하좌우 이동 Vector3 vec = new Vector3(Input.GetAxis("Horizontal"), 0, Input.GetAxis("Vertical")); rigid.AddForce(vec * 30 * Time.deltaTime, ForceMode.Impulse); vec라는 Vector3 변수를 생성. AddForce()에서 vec를 적용해줌. (vec만큼의 힘을 가하는 함수.) 3) item 먹을 때, 효과음 발생. - 컴포넌트의 Audi.. 2022. 12. 5.
C# 유니티 공부 4 - 물리적인 핵심 Component 4가지. (공을 움직여서 충돌효과를 일으키기, 색 변환/뒤로 튕겨나가기) Mesh, Material, Colider, RigidBody - FixedUpdate에 작성하는것이 안정적. (not Update) - Class, 함수 사용에 있어서 코드의 흐름은 선언 -> 초기화 -> 호출. * RigidBody - 물리효과를 받기 위한 Component. - Mass(질량) 수치가 높을수록 무게 증가. (현실 물리적인 특성 그대로 반영.) - Use Gravity 중력 효과 반영 여부 결정. - Is Kinematic 외부 물리효과로부터의 면역 여부 결정.(ex. 움직이는 함정을 만들 때 사용 가능.) * Colider - 물리효과를 받기 위한 Component. - 충돌 효과에 대한 부분을 담당. * Material - Object의 외부 재질을 결정하는 Component. -.. 2022. 12. 3.
C# 유니티 공부 2 - 마우스/키보드 입력, 오브젝트 수평/수직 이동 * KeyCode 클래스 - enter키는 return의 형태. Input.GetKey(KeyCode.Return) - esc는 Escape의 형태 Input.Getkey(KeyCode.Escape) * Input 클래스 - 게임 내 입력을 관리하는 클래스. - enter키는 return의 형태. (Input.Getkey(KeyCode.Escape) - esc키는 escape의 형태. 키 입력은 3가지 형태이다. Up : 눌렀다가 떼었을 때 Stay : 누르고 있을 때 Down : 최초로 눌렀을 때 Iuput 클래스 Method 명 함수 변수 함수 효과 anyKeyDown() 입력 눌렀을 때 () anyKey() 누르고 있을 때 () GetKey() 키보드 입력 키보드 누르고 있을 때 () GetkeyD.. 2022. 12. 3.
C# 유니티 공부 1 - 게임오브젝트 흐름 단계 * 게임오브젝트의 흐름에서 사용하는 유니티 함수 초기화 -> (활성화)-> 물리연산 -> 게임로직 -> (비활성화) -> 해제 활성화는 초기화, 물리연산 단계즈음에 진행. 비활성화는 해제 단계 이전에 진행. 게임오브젝트 흐름 단계 초기화 활성화 물리연산 게임로직 비활성화 해제 함수 Awake() OnEnable() Fixedupdate() Update() OnDisable() OnDestroy Start() Lateupdate() 특징 1초에 약 50프레임 반복 실행 1초에 약 60프레임 반복 실행 예시 게임 오브젝트 생성 로그인 이동 사냥, 경험치 획득 로그아웃 게임 오브젝트 삭제 2022. 12. 3.
C# 문법 복습2. (Class, 생성자, 접근제한자, 속성, 상속, as/is 키워드) 2. 고양이 감정 표현(클래스 선언, 생성자, 접근제한자, 속성) Class는 일종의 설계도라고 생각하면 편하다. 예를 들어.. 자동차를 만드는 것을 가정했을 때, 자동차 설계도 = Class 자동차 = Object 구매한 자동차 각각 = Instance 이며.. 자동차 설계도로부터 자동차를 만들어 내는 것을 객체화, 인스턴스화 라고 한다. 설계도에는 자동차색, 자동차옵션 등 여러가지 변수를 설정, 저장 할 수 있다. Visual Studio에서 우리가 자연스럽게 사용하는 여러가지 기능들 또한 이미 생성된 Class라고 볼 수 있으며, 프로젝트를 진행하며 내가 원하는 기능을 가진 Class를 직접 생성하여 사용하는 것이 효율적이다. - 추후 수정에 용이하다. (List배열, Random, Math 등도 .. 2022. 12. 2.
C# 문법 복습 1. (변수, 형변환, 조건문, 함수 선언, 반복문, 배열) 1. 계산기 만드는 법 (변수선언, 함수생성, 조건문) * 변수 선언 키워드 int : 4바이트의 정수 long : 8바이트의 정수 float : 4바이트의 실수 double 8바이트의 실수 char : 2바이트의 문자 string : 문자열 자료형 bool : true or false * 형변환 1) 문자열을 숫자/불로 변환 int. parse() long. parse() float. parse() double.parse() bool.parse() 2) 다른 자료형을 문자열로 변환 Tostring() * 조건문(if, else, else if) if(조건) {코드블럭} else if (조건) {코드블럭} else {코드블럭} if 조건문이 참(true)라면 if 코드블럭을 실행 -> else if 조건.. 2022. 12. 2.
고양이 기분 표시하는 코딩 연습. (Class, 접근제한자, 생성자) * Class 는 설계도다. * 추가한 Class 코딩창에서의 코딩내용. namespace 고양이 { public class Cat { int Age; string Name; int Happiness=50; * 변수 선언 public Cat(string Name, int Age) { this.Name = Name; this.Age = Age; } * 이렇게 따로 정해주지 않으면, 본 프로젝트 코딩창에 자동으로 생성자가 만들어짐. this는 Class 자체변수를 의미. Name=Name 같은 변수를 사용했음에도 this로 인하여 클래스내와 밖의 변수로 구별이 됨. public void Play() { Happiness = Happiness + 10; if (Happiness > 100) Happiness .. 2022. 11. 30.
계산기 코딩 (Visual Studio 2019, C#) namespace 계산기 { public enum Operators { sum, sub, multi, div} * 열거형 데이터 public partial class Form1 : Form { public Form1() { InitializeComponent(); } public int Result = 0; public bool IsNuNum = true; public Operators opt = Operators.sum; * 기본값 설정 private void button10_Click(object sender, EventArgs e) { Button ClickNumber = (Button)sender; if (IsNuNum) { Screen.Text = ClickNumber.Text; IsNuNum .. 2022. 11. 30.
반응형