Move 새로운 움직임 방식
회전까지
float xAxis = Input.GetAxis("Horizontal");
float yAxis = Input.GetAxis("Vertical");
MoveToDir(new Vector3(xAxis,0, yAxis));
Horizontal, Vertical 유니티에서 제공해주는 방식이다, 움직임 외에 여러가지가 있다.
원래 W,D를 받는 방식과 다르다
회전 코드
if(Input.GetKey(KeyCode.Q))
{
transform.Rotate(Vector3.up, -rotSpeed * Time.deltaTime);
}
if (Input.GetKey(KeyCode.E))
{
transform.Rotate(Vector3.up, rotSpeed * Time.deltaTime);
}
Q를 받으면 왼쪽으로 E를 받으면 오른쪽으로 회전하는 형식이다.
벡터값이므로 x,y 반대 방향 음수양수를 구분해서 속도값을 줘야한다. 잘못 줄 시 반대 방향으로 돌아감.
tip. 축을 기준으로 회전이나, 스케일을 키우는게 달라짐 이걸 생각하고 곱하고 더하는걸 생각해야함
transform.Translate(벡터,속도,델타타임) 이동
transform.RotateAround 기점을 두고 주위를 회전
1 / 60 deltaTime , 1 / 50 fixedDeltaTime(고정)
if (Input.GetKey(KeyCode.W))
MoveToDir(transform.forward);
if (Input.GetKey(KeyCode.S))
MoveToDir(transform.forward * -1f);
if (Input.GetKey(KeyCode.A))
MoveToDir(transform.right * -1f);
if (Input.GetKey(KeyCode.D))
MoveToDir(transform.right);
Vector는 월드 기준 좌표 그러므로 벡터로 캐릭터를 움직이면 캐릭터가 회전을 해도 방향은 바끼지 않는다
transform으로 바꿔주면 자기기준으로됨 대신 음수로 움직이는게 없음 back , left 그러므로 반대 방향에 -1f를 곱해준다
이제 sound 아이템 먹을때 사운드를 만들껀데
배경 음악은 일단 Audio Source라는 컴퍼넌트를 사용하면 된다.
먹을 때 사운드를 낼 때를 구현하면 코드는 이렇다.
public void DeadProcess()
{
AudioClip[] clips = Resources.LoadAll<AudioClip>("CasualGameSounds");
//AudioClip clip = Resources.Load<AudioClip>("파일명\\파일명.확장자");
하나만 불러올때 이런 코드를 사용 , 오디오는 항상 Resources 파일이 있어야함
//audio.clip = clips[0];
//audio.Play();
//audio.volume = 0.5f; 볼륨 조절 가능
audio.PlayOneShot(clips[Random.Range(0, clips.Length)]); //한번 실행해주는 코드 PlayOneShot
Invoke("SelfDestroy", 0.5f);
}
private void SelfDestroy()
{
Destroy(gameObject); //자신을 파괴
}
파일 여러개를 불러올때는 배열로 생성
'수업 일기장' 카테고리의 다른 글
네트워크 수업 (1) (0) | 2021.04.20 |
---|---|
Unity 3D Dark Souls 따라하기 (0) | 2021.03.30 |
Unity.6 uv, 텍스쳐 Wrap mode (0) | 2021.02.26 |
Unity.5 uv, normals, triangles (0) | 2021.02.26 |
Unity.4 Collider, Rigidbody (0) | 2021.02.24 |