본문 바로가기

유니티/스크립트

(5)
유니티 Rest API 통신 UnityWebRequest 유니티에서 WWW을 지원하지 않는다고 발표한지 꽤 된거같은데 아직 WWW로 작성된 예제들이 많다. UnityWebRequset를 이용하여 로그인/로그아웃을 하고 파일(이미지)을 다운로드해오는 코드를 작성해보았다. 완성된 코드라고는 할 수 없겠지만, 기본적인 뼈대는 작성해놓았으니 여기서 필요한 부분만 수정해서 사용하면 될듯하다! using System.Collections; using System.IO; using UnityEngine; using UnityEngine.Networking; using UnityEngine.UI; public class InternetCheck : MonoBehaviour { private string token = null; private string login_email..
유니티 특정 시간동안 조건을 유지할 경우 특정 시간동안 조건을 유지할 경우 특정 시간동안 값이 변하지 않을 경우 ​ 원하는 함수를 실행하게 하는 코드를 작성해보았다. 이번에도 Rx프로그래밍인 UniRx를 기반으로 제작해보았다. 각 함수들에 대한 자세한 설명은 글 하단 참조하기! ​ 예제 -'조건'이 'false에서 true'가 되고 '2'초 후 계속 'true'일 경우 '함수'를 실행 '조건' -> Select 'false에서 true' -> DistinctUntilChanged '2' -> Throttle // Delay 쓰면 안됨!!! 'true' -> Where 함수 -> 'Subscribe' // User Detect Stream this.UpdateAsObservable() .Select(_ => 조건) .DistinctUntilCha..
[유니티] npc와 대화하기 UniRX UniRX를 공부한 김에 이를 이용한 npc와 대화 로직을 만들었습니다. 유니티 RPG게임이나 추리게임에서 유용하게 사용할 수 있는 코드입니다. 프로그램은 다음과 같이 구성하였습니다. ​ 1. NPC 가까이 가면 대화할 수 있음 ( InAreaNPC 메서드 ) 2. 스페이스바를 누르면 대화창이 뜨고 대화 시작 3. 대화문장은 한글자씩 천천히 출력됨 4. 만약 이를 기다리기 싫다면 스페이스바를 한번 더 눌려서 전체 문장을 한번에 볼 수 있음 5. 해당 문장을 보기 싫다면 스페이스바를 더블클릭하여 다음 대화로 스킵가능 6. 대화가 끝나거나 대화도중 npc영역에서 벗어나면 대화 끝 7. 대화가 끝나면 무조건 대화는 처음부터 시작 ​ 게임을 좋아하시는 분들이라면 익숙한 동작이시죠? 이를 구현하면 다음과 같습니다..
[유니티]공 이동거리 계산 프로그램 평지가 아닌 상황에서 공의 이동거리를 계산하는 프로그램을 제작하였습니다. 각도나 길이가 다른 5개의 판을 설치하고, 그 꼭대기에서 공을 굴러서 바닥에 닿는 순간 지금까지 공이 회전한 각도를 계산하여 공의 이동거리를 계산하는 프로그램입니다. 공의 지름은 1m로 설정했기에, 1바퀴 회전당 pi m씩 이동하도록 설정하였습니다. ​ ​ 환경 정보 중력가속도 : -9.81 m / s2 ​ ​ 오브젝트 정보 ( 단위- 길이 : m, 각도 : 오일러 ) 공 : 반지름 0.5 1번 판 - 길이 : 30, 각도 : 23 2번 판 - 길이 : 20, 각도 : 20 3번 판 - 길이 : 20, 각도 : 23 4번 판 - 길이 : 10, 각도 : 20 5번 판 - 길이 : 20, 각도 : 꼭대기에서 중간까지 23, 중간에서 ..
[유니티]오브젝트 순차적 색상변경 예제를 적용한 큐브들입니다. 아래 스크립트 적용시 'Z'키를 누르면 지정한 색깔 순서대로 오른쪽의 작은 큐브부터 색상이 변하게 됩니다. ​ ​ 해당 큐브 그룹의 계층창과 인스펙터창입니다. 이렇게 4개의 큐브를 하나의 게임오브젝트의 자식으로 설정하고, 부모오브젝트에 스크립트를 적용하였습니다. 소스코드 using System.Collections; using System.Collections.Generic; using UnityEngine; public class Test_CubeStream : MonoBehaviour { List MyColors = new List(); Dictionary MyCubes = new Dictionary(); //큐브들 int numberOfCube = 0; void Star..