일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- HAPTIC
- OVR
- meta xr
- 유니티
- 모작
- Oculus
- 드래곤 플라이트 모작
- 유니티 UI
- 가상현실
- 유니티 Json 데이터 연동
- 팀프로젝트
- ChatGPT
- 개발일지
- 포트폴리오
- 팀 프로젝트
- VR
- 개발
- meta
- 멀티플레이
- 유니티 GUI
- input system
- 연습
- XR
- CGV
- 오큘러스
- 드래곤 플라이트
- 길건너 친구들
- 오브젝트 풀링
- 앱 배포
- Photon Fusion
Archives
- Today
- Total
EasyCastleUNITY
Swipe car 음향 및 UI 추가 본문
CarCotroller
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class CarController : MonoBehaviour
{
private float moveSpeed = 0.0f;
float dampingCoefficient = 0.96f; //감쇠 계수
private Vector3 startPos; // down 했을 때 위치
private Vector3 endPos; //up 했을 때 위치
// Start is called before the first frame update
public AudioClip[] audioClips;
void Start()
{
}
// Update is called once per frame
void Update()
{
//왼쪽 마우스 버튼을 눌렀다면
if (Input.GetMouseButtonDown(0))
{
Debug.LogFormat("Down: {0}", Input.mousePosition);
this.startPos = Input.mousePosition;
}
//버튼이 띄어지는 순간
else if(Input.GetMouseButtonUp(0))
{
Debug.LogFormat("Up: {0}", Input.mousePosition);
this.endPos = Input.mousePosition;
//Vector3 c = this.endPos - this.startPos;
float swipeLength=this.endPos.x - this.startPos.x;
Debug.LogFormat("swipeLength:{0}",swipeLength);
//화면 좌표계에서의 두점사이의 거리에 비례해서 이동
//but, 이동 좌표계가 안맞아서 어림잡아 500정도 나눔
this.moveSpeed = swipeLength / 500f;
Debug.LogFormat("moveSpeed: {0}", moveSpeed);
//오디오 실행
this.PlayMoveSound();
}
this.transform.Translate(this.moveSpeed, 0, 0);
//감쇠 , 점점 감소 -> 0.00x 0과 비슷해짐
this.moveSpeed *= this.dampingCoefficient;
}
public void PlayLoseSound()
{
// AudioSource audio = this.GetComponent<AudioSource>();
AudioClip clip = this.audioClips[1];
GetComponent<AudioSource>().PlayOneShot(clip);
}
public void PlayMoveSound()
{
// AudioSource audio = this.GetComponent<AudioSource>();
AudioClip clip = this.audioClips[0];
GetComponent<AudioSource>().PlayOneShot(clip);
}
}
GameDirector
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class GameDirector : MonoBehaviour
{
GameObject carGo;
GameObject flagGo;
GameObject distanceGo;
// Start is called before the first frame update
void Start()
{
//자동차
this.carGo = GameObject.Find("car"); //게임오브젝트 이름으로 찾기
//깃발
this.flagGo = GameObject.Find("flag");
//UI (Text)
this.distanceGo = GameObject.Find("Distance");
Debug.LogFormat("this.carGo{0}", this.carGo);
Debug.LogFormat("this.flagGo{0}", this.flagGo);
Debug.LogFormat("this.distanceGo{0}", this.distanceGo);
}
private bool isGameOver = false;
// Update is called once per frame
void Update()
{
//매프레임마다 자동차와 깃발의 거리를 계산해서 UI에 출력해야 함
//테스트
float distanceX = this.flagGo.transform.position.x - this.carGo.transform.position.x;
Debug.LogFormat("distance: {0}", distanceX);
Text text = distanceGo.GetComponent<Text>();
if (distanceX >= 0)
{
text.text = string.Format("목표 지점까지의 거리 {0:0.00}m", distanceX);
}
else
{
if (this.isGameOver == false)
{
text.text = string.Format("게임 오버");
CarController carcontroller = this.carGo.GetComponent<CarController>();
carcontroller.PlayLoseSound();
this.isGameOver = true;
}
}
}
}
'유니티 기초' 카테고리의 다른 글
구름 오르기 (0) | 2023.08.02 |
---|---|
고양이 화살 피하기 게임 (0) | 2023.08.02 |
2023/08/01 복습 (0) | 2023.08.01 |
간단 룰렛 (0) | 2023.08.01 |
Swipe Car && 수리검 던지기 (0) | 2023.08.01 |