find / name / print
void start(){
GameObject monster = GameObject.Find("Cube");
GameObject koko = GameObject.Find("Cube");
monster.name = "Orc";
print(koko.name);
}
결과 = orc
Public -스크립트 외부에서 수치를 변경이 가능해진다.
[Sytem.NonSerialized] - public 변수를 외부에서 변경을 못하게 한다.
(애초에 public으로 안하면 될것을 왜이리 하는지 알수는 없지만...나중에 알게되겄지...)
public int myAge =10;
[Sytem.NonSerialized]
public int myAge =10;
void start(){
print (myAge);
}
결과 = 10 이거나 외부에서 넣은 수치
변수사용
int gogo =10;
void start(){
print("who is"+ gogo);
print("what is"+ gogo);
print("where is"+ gogo);
}
결과 = who is 10 , what is 10 , where is 10
void 활용영역
void는 공허(빈)라는 뜻이고 함수를 만드는데 사용된다. 함수는 ()가 있으며 가능하면 함수명 앞은 대문자로 한다.
void Start(){
GoGo();
GoGo();
GoGo();
GoGo();
}
void GoGo(){
print ("What");
print ("How");
print ("YEA");
}
결과 = what How YEA, what How YEA, what How YEA
int intOk; // intOk라는 정수형 변수를 만든다.
float Afloat = 10.5f //Afloat라는 실수형을 만들고 그 값을 10.5라고 넣는다.
float Bfloat = 9.5f //Bfloat라는 실수형을 만들고 그 값을 9.5라고 넣는다.
void FloatToint() //FloatToint라는 함수를 만든다.
{
}
void FloatToint(flaot _Af, float _Bf, String _TEX = "디폴트") //()안에는 입력받을 것을 넣는데 사용된다.
// _TEX에 넣을것이 없을때 디폴트라는 글자를 출력한다.
{
intOk =(int)(_Af+_Bf); //_Af과 _Bf 더한것을 int정수형으로 변경하여, intOK에 담는다.
print(intOk); //intOK를 출력한다.
print(_TEX);
}
void Start() // 유니티에서 첫번째 실행하는 함수이다.
{
FloatToint(Afloat,Bfloat, "Good"); // Afloat은 _Af에 들어가게 되고, Bfloat은 _Bf에 들어가게된다.
// Good은 _TEX안에 들어가게 된다.
}
retrun 은 void를 사용하지 않는 함수를 사용할때 필요하다.
void Start(){
int yourAge = GetYourAge();
print(yourAge);
}
int GetYourAge(){
return 30;
}
결과 = 30
오버로딩
void Start(){
int answerInt = AddTo(12,2);
int answerInt2 = AddTo(2,4,6);
float answerFloat = AddTo(5.2f,2f);
print(answerFloat);
}
int AddTo(int numA, int numB){
int sum = numA +numB
return sum;
}
int AddTo(int numA, int numB, int numC){
int sum = numA + numB + numC
return sum;
}
float AddTo(float numA, float numB){
float sum = numA +numB
return sum;
}
결과 = 7.2
조건문
int hp =100;
void Start(){
}
void OnMouseDonw(){
hp = hp-10;
if(hp < 1){
print("killed")
print("HP:" +hp);
Destroy(gameObject);
}else if(hp<20){
print("hurt...");
print("HP:" +hp);
}else{
print("OK");
print("HP:" +hp);
}
}
Switch문
pulbic int myHp= 50;
void Start(){
}
vod OnMouseDonw(){
case 10:
print("NONO")
break;
case 20:
print("NO")
break;
case 30:
print("more")
break;
default:
print("OK")
break;
}
결과 = OK
for 와 while (Loop문)
------ for ------ 반복횟수가 명확할때 주로 사용한다.
for (시작수:언제까지:증가수)
void Start(){
}
void OnMouseDown(){
for( int i =0 ; i<10 ; i++){
MoveForward();
}
}
void MoveForward(){
transform.Translate(0, 0, 0.1f);
}
다른 응용법
<<<<
int add = 0; // 시작수
void Start()
{
for(;;) // ;만 남기고 나머지는 따로 처리하는 방식
{
if(add>5) // 언제까지
break; // if 멈춤
num = add+2; //(add +=2) 증가수
}
}
>>>>>
------ while ------ 반복횟수가 명확하지 않을때 주로 사용한다.(어찌되었건 비슷하다.)
void OnMouseDown()
{
int count = 0;
while (count < 10)
{
MoveForward();
count++;
}
}
void MoveForward()
{
transform.Translate(0, 0, 0.1f);
}
배열
int[ ] numbers = new int[5];
void Start(){
numbers[0]=6;
numbers[1]=2;
numbers[2]=11;
numbers[3]=3;
numbers[4]=9;
print(numbers[3]);
}
------ public ------
public int[] numb;
void Start()
{
}
void OnMouseDown()
{
print(numb[numb.Length - 1]);
}
void Start(){
int[] points = {10,20,30,40};
int sum = 0;// 무언가 우선 들어있어야한다.
for(int i=0; i<point.Lenght;i++)
{ sum +=points[i]; }
int average = sum / points.Length;
Debug.Log(average);
}
결과: 25
new 와 static
new는 클래스의 변수를 사용할때 재지정하여 사용하는것.
Static은 클래수의 변수에 직접 변수를 넣어서 사용하는것.
public class TestA
{
private int a;
public int b; // 이 부분을 활용.
public static int c; // static처럼 외부에서 직접 사용되는 변수를 정적변수라고 한다.
}
public class Test : MonoBehaviour
{
TestA a1 = new TestA(); //위에 클래스의 변수를 새로 지정해야 정상적으로 작동한다.
TestA a2 = new TestA();
TestA a3 = new TestA();
void Start()
{
Abc();
}
void Abc()
{
a1.b = 5; // 클래스에 접근하여 수를 대입하는 방식이다.
a2.b = 1;
a3.b = 10;
TestA.c = 20; // static의 경우 new를 사용하지 않고 직접 대입할수 있다. 클래스 자체를 수정하는것이다.
//변수를 만들 필요가 없이 직접 대입한다.
print(a1.b);
print(a2.b);
print(ac.b);
print(TestA.c);
}
}
'Unity > C#' 카테고리의 다른 글
캐릭터 랜덤 모션 (0) | 2020.11.02 |
---|---|
EditorWindow (0) | 2020.10.30 |
간단한 애니메이션 스크립트 (0) | 2020.09.08 |
MiniPorfiler (0) | 2020.07.29 |
object rotate by tag (0) | 2020.07.29 |