프로그램시, 접근 범위를 결정하는 접근 제한자에 대해 정리해보려 한다. 


접근 제한자에는 public, protected, internal, private가 있다. 


네 가지의 접근 제한자에 대해 알아보려고 합니다. 아래는 4개의 접근 제한자를 정리해놓은 표입니다.


private


클래스 내부에서만 접근이 가능하다.


public 


모든 곳에서 접근이 가능하다.


internal


같은 어셈블리에서만 public으로 접근이 가능하다. 


protected


클래스 외부에서는 기본적으로 접근할 수 없으나 파생 클래스(자식 클래스)에서는 접근이 가능하다.


protected internal 


같은 어셈블리에서만 protected으로 접근이 가능합니다. 

 

주의할 점은 아무것도 선언하지 않는다면 기본적으로 private로 인식하게 된다.


internal때문에 이것을 검색하게 되었는데...


어셈블리는 즉, 해당 프로젝트 내와 같은 의미라고 할 수 있다.

Posted by sungho88
,

C# 스크립트에서 변수를 여러 개 선언하면,


유니티에서 Inspector내 스크립트에 줄줄이 나온다.

(물론 public으로 선언했을 경우)


그런데 이 변수가 어떤 기능을 하는 것인지 기억이 안나 스크립트에서 코드를 다시 볼때가 있다.


이런 것을 방지하기 위해 유니티에서는 Tooltip이라는 기능을 제공한다.



[Tooltip("이것은 넘버1이다.")]
    public GameObject number01;

이렇게 작성하면,

 

이렇게 마우스를 갖다대면 설명이 나온다.


그래서 스크립트로 돌아가서 확인하지 않아도 되므로 요긴하게 사용될 수 있다.


물론, 원하는 변수에만 작성해서 사용할 수 있다. 

Posted by sungho88
,

- Input.GetMouseButton : 마우스 버튼을 누르는 동안


- Input.GetMouseButtonDown : 마우스 버튼을 누른 순간


- Input.GetMousebuttonUp : 마우스 버튼을 눌렀다 때는 순간


뒤에 소괄호 안에 숫자 0, 1, 2에 따라 마우스 왼쪽버튼, 오른쪽버튼, 휠버튼으로 나뉜다.


위 3개 True/False로 구분됨. 

누르고 있거나, 눌렸거나, 뗏거나의 경우 true...아무것도 안 했을 때 false 

using UnityEngine;
using System.Collections;

public class ExampleClass : MonoBehaviour { void Update() { if (Input.GetMouseButtonDown(0)) Debug.Log("Pressed left click."); if (Input.GetMouseButtonDown(1)) Debug.Log("Pressed right click."); if (Input.GetMouseButtonDown(2)) Debug.Log("Pressed middle click."); } }

Input.mousePosition : 화면에서 클릭 시 클릭한 마우스 좌표값을 얻을 수 있음.


둘 다 마우스 터치 시 사용한다고 하는데, OnMouseDown() 보다는 


Input.GetMouseButtonDown()을 추천한다.


    void OnMouseDown()
    {
        print("OnMouseDown~~");
    }

    void Update () {
        if (Input.GetMouseButtonDown(0))
        {
        print("Input.GetMouseButtonDown!!");
        }
    }


이렇게 하고 실행을 했는데, 이유는 모르겠으나 


Input.GetMouseButtonDown!!만 게속 출력되고, OnMouseDown은 실행이 되지 않는다.


또한,


OnMouseDown() 함수는 모바일에서 적용되지 않는다.


물론, Input.GetMouseButtonDown(0)의 경우 모바일에서 사용이 가능하다.


 

Posted by sungho88
,