본문 바로가기

유니티

(16)
[유니티] Firebase Database를 사용하여 저장된 데이터를 불러오기 https://sharp2studio.tistory.com/32 앞 선 포스팅에서 저장된 정보를 불러와 보자. 다시, 빈 스크립트에 using System.Collections; using System.Collections.Generic; using UnityEngine; using Firebase; using Firebase.Database; using Firebase.Extensions; public class firebase : MonoBehaviour { DatabaseReference dataReference; void Start() { dataReference = FirebaseDatabase.DefaultInstance.RootReference; ReadQuizData(); } void Re..
[유니티] Firebase Database를 사용하여 데이터를 저장해보기 https://console.firebase.google.com/u/0/?hl=ko 로그인 - Google 계정 이메일 또는 휴대전화 accounts.google.com 먼저 파이어베이스에 접속해 로그인을 해 준다. 그 후 프로젝트 추가 - 자신의 프로젝트 입력 - 등 순서대로 따라 프로젝트를 만들어준다. 이어서 위에 있는 유니티 버튼을 클릭해준다. 원하는 플랫폼을 설정해주면 되는데, 나는 안드로이드를 선택을 할 것이다. 위에 패키지 이름은 유니티로 들어가, build setting에서 플랫폼으로 안드로이드로 바꿔주고, edit-project setting-Player-Other Setting-Package Name에 들어가면 찾을 수 있다. Package Name을 복사해서 파이어베이스 콘솔에 입력해준..
[유니티] 일정한 속도로 회전하는 오브젝트 만들기 [SerializeField] float rotateSpeed;//1초당 회전할 속도 float t; void Update() { t += Time.deltaTime; transform.rotation = Quaternion.Euler(0, 0, t*rotateSpeed); if (t * rotateSpeed >= 360) t = 0; //t값이 너무 커지지 않게 조절 } 오브젝트를 1초에 rotateSpeed의 각도만큼 회전하게 하는 스크립트이다.
[유니티] 일정 시간 후에 자동으로 사라지는 오브젝트 만들기 [SerializeField] float t; void Start() { Invoke("Des", t); //t초 뒤에 des라는 함수를 실행시켜라. } void Des() { Destroy(gameObject); } 위와 같은 스크립트를 작성 한 후 넣어주고, Inspector에서 t의 값을 정해주면 t초뒤에 자동으로 삭제되는 오브젝트를 만들 수 있다.
[유니티] 코루틴(Coroutine)에 대해 알아보자 코루틴이란? 코루틴은 유니티로 프로그래밍을 할 때 많이 사용되는 문법으로, 시간의 경과에 따른 명령을 주고싶을 때 사용하게 되는 문법입니다. Update문으로 프레임마다 적용하여 시간을 계산하는 방법이 있지만 코루틴을 사용하면 훨씬 간단해집니다. 예를 들어서 1초마다 카운터를 출력하는 로그를 Update함수를 통해 구현한다고 친다면, float t; int counter; void Update() { t+= Time.deltaTime; if (t >= 1) { Debug.Log(counter); counter++; t = 0; } } 이런 식으로 구현이 됩니다. 하지만 업데이트 함수는 매 프레임마다 업데이트 함수를 가지고 있는 오브젝트마다 실행을 하기 때문에, 비용이 많이 들게 됩니다. 이런 상황에서 코..
[유니티] 진행이 불가능 할 때 방향을 스스로 바꾸는 오브젝트 만들기 먼저 한 방향으로 움직이는 오브젝트를 만들어준다. Vector3 MoveV; int vec; //이동 방향을 저장한 변수 int speed; private void Awake() { speed = 1; vec = 1; } void Update() { MoveV = new Vector3(vec, 0, 0); transform.position += MoveV * Time.deltaTime * speed; Vector2 front = new Vector2(transform.position.x + vec*0.5f, transform.position.y); } 여기서 토끼의 진행방향에 Laycast를 생성해준 후, 그 Laycast가 border태그를 가진 오브젝트를 만나면 진행방향을 바꿔준다. DrawLay기능..
[유니티] 내 주변을 원 모양으로 퍼지는 탄환 생성 특정 오브젝트를 기준으로 원 모양으로 퍼지는 탄환을 생성하는 방법이다. int n = 10; int speed = 150; for(int i = 0; i
[유니티] 내 주변을 원 운동하는 오브젝트 만들기 더보기 간단한 코드 float circleR; //반지름 float deg; //각도 float objSpeed; //원운동 속도 void Update() { deg+= Time.deltaTime*objSpeed; if (deg < 360) { var rad = Mathf.Deg2Rad * (deg); var x = circleR * Mathf.Sin(rad); var y = circleR * Mathf.Cos(rad); YS[0].transform.position = transform.position + new Vector3(x, y); YS[0].transform.rotation = Quaternion.Euler(0, 0, deg * -1); //가운데를 바라보게 각도 조절 } else { deg =..