일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 짐벌락
- 게임개발
- Quaternion
- 깃허브
- 인터페이스
- 유니티
- 1인개발
- 로케트
- ar
- 게임
- C#
- 게임제작
- ExtensionMethod
- 확장메서드
- 병맛게임
- AR Foundation
- Unity
- raycast
- github
- 델리게이트
- 리듬게임
- callbyreference
- 소규모프로젝트
- Euler
- ARProgect
- AR세팅
- 레이캐스트
- callbyvalue
- 리듬게임에디터
- AR게임
- Today
- Total
목록분류 전체보기 (118)
Ssssong += Dev
public class Teacher : MonoBehaviour { public string teacherName; public string subject; public ILessonStrategy lessonStrategy; public void SetInfo(ILessonStrategy strategy, string name, string subject) { this.lessonStrategy = strategy; this.teacherName = name; this.subject = subject; } public virtual void Study() { Debug.Log(lessonStrategy.Lesson() + subject + "수업"); } } //전략을 추가 public interfa..
람다 : 무명메서드 () => { } 이렇게 한줄로 처리되는 무명메서드를 람다식이라고 한다. void TestFunc(Func del) { del(50,80); } private void Start() { TestFunc((x,y) => { return (x + y); }); } 괄호 안에서 여러 줄을 처리하는 무명메서드를 람다문이라고 한다. TestFunc((x,y) = >{ Debug.Log("람다문 테스트"); return (x + y); }) 체인을 풀어주는 경우에는 람다식을 쓸 수 없다. 람다식은 무명이기 때문!
유니티는 게임이 실행되었을 때 Awake -> OnEnable -> Start 순으로 함수를 실행한다. 그런데 여러 스크립트에서 Awake, Start 등을 쓰고 있을 때 이 함수끼리의 실행 순서를 정해주고 싶을 때가 있다. 이 때는 ProjectSetting에서 실행 순서를 변경해 주면 된다. Script Execution Oder에서 Defualt Time에 원하는 스크립트를 추가하여 실행 순서를 지정할 수 있다. 숫자가 작을 수록 실행 순서가 빠르다.
ThrowBall! 만드느라 잠시 넣어놨던 리듬게임 다시 꺼내서 뚝딱거리고 있다. 에디터에서 찍은 노트를 세이브/로드 할 수 있는 기능을 추가하였다. 에디터에서 노트를 저장하면 플레이 화면에서도 노트 정보를 가져올 수 있다. Json 파일에 노트 정보를 저장하고 있다. 이런 식으로 음악 이름, 저장 시간, 난이도, 라인간격, bpm, 그리고 각 라인에 찍혀 나올 정보가 기록된다. { "musicName": "Scherzo Waltz", "dataTime": "20220617135058", "difficulty": "Normal", "lineGap": 50.0, "bpm": 240, "leftDial": [ "4;startLine", "13;endLine" ], "leftNormal": [ "6" ], "..
델리게이트는 정해진 기능을 대신 할 수 있는 대리자이다. delegate 리턴타입 델리게이트명(매개변수) 형식으로 규격을 정해줄 수 있다. //델리게이트 선언 public delegate void PrintInfoDel(); //델리게이트 형식을 매개 변수로 받아오기 void PrintInfo(PrintInfoDel printInfoDel) { Debug.Log("---------------"); target.ShowInfo(); Debug.Log("---------------"); } void Start() { Player player = new Player(); //델리게이트 적용 PrintInfo(player.ShowInfo); } 델리게이트는 비슷한 형식의 함수가 일부분의 기능만 다르게 동작할 때..
https://www.youtube.com/watch?v=CcSG_BKB7WM 지난 4월 제작했던 뮤직비디오 겸 리듬게임이다. velog에는 올렸었는데 블로그를 티스토리로 바꾸면서 이 작업을 올리지 않았기에 따로 업로드한다. 유니티로 만드는 뮤직비디오가 목표였기에 그다지 게임으로서 확장성이 있지는 않지만 이 작업을 좀 더 발전시키려 현재 장기프로젝트에 리듬게임 제작 프로젝트를 진행하고 있다.
AR 프로젝트로 Throw Ball! 게임을 제작하였다. 지난주 게시글 업로드 해야 했는데 이사하느라 포스팅이 늦게 되었다 ㅠㅠ 개발일지 기록해둔 것들도 차차 올려야겠다. 에디터에서 본 화면은 아래와 같다. AR 카메라를 사용하기 때문에 휴대폰에서의 동작과 에디터에서의 동작이 달라 여러 번 빌드해서 확인해보아야 했다. 실제 핸드폰으로 플레이하면 이렇게 카메라로 인식하여 플레이할 수 있다. 아래는 플레이 영상!
확장메소드에 이어서 확장메소드를 제네릭하여 사용할 수 있다. where T 로 T 범위를 지정해야 한다. 그렇지 않으면 T의 성격이 모호하여 사용할 수 없기 때문이다. public static T DeepCopy(this T value) where T : class, new() { T clone = new T(); return clone; } public static void Test(this T value) where T : Component { Debug.Log("TEST"); } 싱글턴 패턴도 제네릭할 수 있다. public class Singleton : MonoBehaviour where T : Singleton { public static T instance = null; private voi..