Unity

[Unity / 3D] 문 열기

Alex An 2020. 11. 4. 22:23
using System.Collections;
using System.Collections.Generic;
using UnityEditor.Profiling.Memory.Experimental;
using UnityEngine;

public class DoorController : MonoBehaviour
{
    public GameObject Door;
    public GameObject Player;
    private bool doorIsOpening;  // 문 열림 여부
    private bool SoundIsPlaying = true;

    void Update() {
        if (!GameObject.Find("PauseManager").GetComponent<PauseManager>().isPause) {
            // 문이 일정 범위까지 열리면 멈추기
            if (Door.transform.position.y < -4f) {
                doorIsOpening = false;
            }
            // 버튼 누르기, 문 열기
            // (서서히 내려가도록 Translate와 Time.deltaTime 사용)
            if (doorIsOpening == true) {
                Door.transform.Translate(Vector3.back * Time.deltaTime * 3);
                transform.Translate(Vector3.down * (Time.deltaTime / 6));
            }
            // 마우스 왼쪽 버튼을 클릭했을 때 플레이어와 버튼이 3.0f 보다 더 가까울 경우 실행
            if (Input.GetMouseButtonDown(0) && (Vector3.Distance(Player.transform.position, transform.position) < 3.0f)) {
                doorIsOpening = true;
                if (SoundIsPlaying == true) {
                    SoundIsPlaying = false;
                    SoundManager.Instance.PlaySound("ZeldaPuzzleSound");
                }
            }
        }
    }
}

'Unity' 카테고리의 다른 글

[Unity / 3D] Physics.Raycast  (1) 2021.01.11
[Unity / 3D] 게임 오브젝트, 컴포넌트 찾기  (0) 2020.11.04
[Unity / 3D] 게임 일시 정지  (0) 2020.11.04