본문 바로가기
게임 개발(유니티)/멋쟁이 사자처럼 3기_회고록

멋쟁이 사자처럼 과제1_앵그리버드류 게임 제작(1)

by goraku97 2024. 12. 25.

스크립트

1_C#Script.zip
0.02MB

스크립트 특징

1. bird_effect

bird_effect.cs
0.00MB

오디오 관련

 

- 오디오 재생이 필요하면,  private AudioSource audioSource;

   를 맴버변수 자리에 반드시 기입할것

- 오디오 소스의 초기화를 반드시 실행할 것

// 2. 오디오 소스 초기화
audioSource = GetComponent<AudioSource>();
// 2. 오디오 소스 x -> AddComponent<AudioSource>() 추가
if (audioSource == null)
{
    audioSource = gameObject.AddComponent<AudioSource>();
}

- AudioClip해당 스크립트에서 재생할 오디오, AudioSource해당 오브젝트의 컴포넌트에 있는 오디오

public AudioClip collisionSound; // 1.충돌시에, 재생될 오디오 클립 
private AudioSource audioSource; // 1,2. 오디오 재생을 담당하는 컴포넌트

 

- 충돌시 오디오를 재생할려면 다시한번 재생할 오디오클립(CollisionSound) 오디오소스 컴포넌트를 확인할 것

// 1.충돌 사운드소리(collisionSound)가 설정되어 있고, 1,2.오디오 소스가 유효하다면
if (collisionSound != null && audioSource != null)
{
    audioSource.clip = collisionSound; // 1.충돌 사운드 설정
    audioSource.Play(); // 1.충돌 사운드 재생
}

충돌관련

- gameObject = 이 오브젝트 , collision.gameObject = 상대방 오브젝트

- 충돌한 상대방의 태그를 검사하고 싶다면, CompareTag(" ") 를 사용할 것

if (collision.gameObject.CompareTag("Structure") || collision.gameObject.CompareTag("block Square")
                                                 || collision.gameObject.CompareTag("block Stick")
                                                 || collision.gameObject.CompareTag("Monster"))

 

 

2.  BlockTriangle_RigidBody2D, RedBlockTriangle_RigidBody2D

 

물리엔진 관련

RedBlockTriangle_RigidBody2D.cs
0.00MB
BlockTriangle_RigidBody2D.cs
0.00MB

 

- 리지드바디를 사용하고싶다면, private Rigidbody2D blockTriangle_rb(변수이름)

   를 맴버변수 자리에 반드시 기입할것

- 리지드바디의 초기화를 반드시 실행할것

// 1. RigidBody2D 컴폰넌트 가져오기
blockTriangle_rb = GetComponent<Rigidbody2D>();

 

- 물리엔진을 비활성화 시키고 싶으면  (리지드바디 변수이름).isKinematic  =  true 

   활성화 시키고 싶으면 (리지드바디 변수이름).isKinematic  =  false

 

- 물리엔진 비활성화

// 1. 오브젝트의 리지드바디(blockTriangle_rb) 가 존재하면
// 1. 초기에는 Rigidbody2D를 비활성화 상태로 설정
if (blockTriangle_rb != null)
{
    blockTriangle_rb.isKinematic = true; // 물리 시뮬레이션 비활성화
    // isKinematic 은 물리적인 힘(중력,충돌 등의)의 영향을 받지 않게함.
}

 

- 물리엔진 활성화

// 1. 오브젝트의 리지드바디(blockTriangle_rb) 가 존재하면
    if (blockTriangle_rb != null)
    {
        blockTriangle_rb.isKinematic = false; // 물리 시뮬레이션 활성화
    }
}