UNITY

[Unity] 2D Content 제작하기 (3) (InvokeRepeating, Physics Material)

연듀 2022. 4. 25. 16:54

 

slope을 생성해 Box Collider 2D를 주고,

chickBall 을 Prefab으로 등록한다. order in layer는 2로 두어 가장 앞쪽으로 올 수 있게 한다. 

그리고 Rigidbody 2D와 Circle Collider 2D를 준다. 

 

 

cshChickGenerator 스크립트를 작성한다.

 

 

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class cshChickGenerator : MonoBehaviour
{
    public GameObject obj; //ChickBallPrefab 설정
    public float interval = 3.0f; //다음에 함수가 호출될 인터벌

    void Start()
    {
        //SpawnObj함수를 게임이 실행된 0.1초 후에 호출, 이후 interval초 마다 호출 된다.
        InvokeRepeating("SpawnObj", 0.1f, interval);
    }

    //SpawnObj함수는 ChickBallPrefab을 생성한다.
    void SpawnObj()
    {
        Instantiate(obj, transform.position, transform.rotation);
        // obj를 이 스크립트가 들어가는 오브젝트의 위치, 방향에다 복제
    }
}

 

InvokeRepeating 함수는 특정 함수를 지정된 시간 간격으로 반복해서 호출시킨다. 

 

InvokeRepeating(호출할 함수의 이름, 몇 초 후에 실행 시킬것인지, 다음 함수가 실행되기까지의 간격)

 

 

 

빈 오브젝트인 ChickPoint도 position을 설정해 생성하고, chickGenerator 스크립트를 ChickPoint에다 추가한다. 

Obj에 ChickBall Prefab을 넣어준다. 

 

 

지정된 위치인 ChickPoint 에서 ChickBall이 게임 시작 0.1초 후에 3초 간격으로 복제되기 시작한다. 

 

 

 

 

ChickBall에 탄성을 추가해보자. 

Project -> 2D -> Physics Material 2D 추가

이름을 ChickPhysics로 변경 후 Friction과 Bounciness를 수정한다.

Friction: 0.4 (마찰계수, 0: 마찰이 없는 상태)

Bounciness: 1 (반발계수, 0: 탄성이 전혀 없는 상태)

 

 

생성한 물리 속성을 ChickBall 프리팹의 

Rigidbody 2d -> Material 에 추가한다. 

 

Chickball에도 마찬가지로 cshDestroyObj 스크립트를 추가해 일정시간이 지나면 사라지게 한다.