091

[C#] Unity 속 C# script(11) : 응용 본문

Programming Language/C#

[C#] Unity 속 C# script(11) : 응용

공구일 2024. 12. 11. 06:14
728x90

* 언급이 없을 경우 기즈모방향이 왼쪽좌표계인 경우를 기준으로 말하고 있습니다. *

01. 바람개비 돌리기

-> Cube scale (10,30,1), rotation(0,0,0)

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
//using UnityEngine.SceneManagement;

public class vane_ggi : MonoBehaviour
{
    void Update(){
        transform.Rotate(0,0,-10);
    }
}

02. 위에서 아래로 내려오는 공이 다시 위로 올라가기

-> Sphere scale(3,3,3)

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
//using UnityEngine.SceneManagement;

public class Up_ggi : MonoBehaviour
{
    void OnCollisionEnter(Collision col){
        col.gameObject.GetComponent<Rigidbody>().AddForce(Vector3.up * 100);
    }
}

03. 공이 아래로 굴러감 -> 공이 파란박스와 충돌하면 사라짐 -> 남은 공의 수 텍스트로 출력

-> GameManager을 활용

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
//using UnityEngine.SceneManagement;

public class gameManagerS : MonoBehaviour
{
    private int scount = 0;
    public void CountMethod(){
        scount++;
        Debug.Log("남은 코인 수: "+ (6-scount));
    }
}
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
//using UnityEngine.SceneManagement;

public class box_ggi : MonoBehaviour
{
    public GameObject GM;
    void OnCollisionEnter(Collision col){
        Destroy(col.gameObject);
        GM = GameObject.Find("GameManager");
        GM.GetComponent<gameManagerS>().CountMethod();
    }
}

04. 녹색 코인은 무작위로 뿌려서 생성시킨 후 공이 내려와서 녹색 코인 몇 개를 먹으면 공이 사라짐

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
//using UnityEngine.SceneManagement;

public class gcoin_ggi : MonoBehaviour
{
    int count = 0;
    void OnTriggerEnter(Collision col){
        if(col.tag == "GCoin")  { //태그이름
            count++;
            Destroy(col.gameObject);
            if(count == 5){
                Destroy(gameObject);
            }
        }
    }
}

05. 어떤 버튼을 누를 때마다 색 별로 주기적으로 공이 생성돼서 아래로 떨어지고 바닥에 충돌하면 다시 하늘로 올라가기

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
//using UnityEngine.SceneManagement;

public class vane_ggi : MonoBehaviour
{
    public GameObject sCopy;
    void Update(){
        if(Input.GetKeyDown(KeyCode.A)){
            Instantiate(sCopy,sCopy.transform.position,sCopy.transform.rotation);
        }
    }
    void OnCollisionEnter(Collision col){
        col.gameObject.GetComponent<Rigidbody>().AddForce(Vector3.up * 100);
    }
}

 

더보기

* 일부 출처 - 고수정, ”게임프로그래밍 ”, 인덕대학교

728x90