라이프사이클 기술면접에서 가끔 나옴
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Cube : MonoBehaviour
{
// Start is called before the first frame update
void Start()
{
Debug.Log(this); //cube클래스의 인스턴스
Debug.Log(this.gameObject); //cube클래스의 인스턴스 ( 컴포넌트가 붙어있는 게임오브젝트 인스턴스)
//내가 붙어있는 게임오브젝트의 특정 컴포넌트 인스턴스를 가져올 수 있음
}
// Update is called once per frame
void Update()
{
}
}
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Cube : MonoBehaviour
{
// Start is called before the first frame update
void Start()
{
//특정 게임오브젝트에 붙어있는 T타입의 컴포넌트 인스턴스를 가져온다
BoxCollider collider = this.gameObject.GetComponent<BoxCollider>();
Debug.Log(collider);
//내가 붙어있는 게임오브젝트의 Transform 컴포넌트 인스턴스
Transform trans = this.gameObject.GetComponent<Transform>();
Debug.LogFormat("trans: {0}", trans);
//this.gameObject.GetComponent<Transform>()랑
//this.gameObject.transform랑
//this.transform이 동일하다
Debug.LogFormat("trans: {0}", this.gameObject.transform);
Debug.LogFormat("trans: {0}", this.transform);
}
// Update is called once per frame
void Update()
{
}
}
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class App : MonoBehaviour
{
public enum eAppType
{
Dev, Release
}
public string appName;
public int appVersion;
public float damage; //멤버변수가 인스펙터에 노출됨
[SerializeField] //애트리뷰트를 사용하면 private멤버도 인스펙터에 노출된다.
private bool isTest;
[SerializeField]
private eAppType appType;
public GameObject go;
public App app;
// Start is called before the first frame update
void Start()
{
Debug.Log(this.gameObject.GetComponent<Transform>().position);
Debug.Log(this.gameObject.transform.position);
Debug.Log(this.transform.position);
Debug.Log(this.transform.position.x);
Debug.Log(this.transform.position.y);
Debug.Log(this.transform.position.z);
Debug.Log(this.appName); //null
Debug.Log(this.appVersion);
Debug.Log(this.damage);
Debug.Log(this.isTest);
Debug.Log(go); //할당된 게임오브젝트의 인스턴스
Debug.Log(app); //App컴포넌트의 인스턴스
Debug.Log(this.gameObject == app.gameObject);
Debug.Log(this == app);
//리치텍스트
Debug.LogFormat("<color=yellow>{0}</color>", this);
}
// Update is called once per frame
void Update()
{
}
}
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class App : MonoBehaviour
{
public Hero hero;
// Start is called before the first frame update
void Start()
{
Debug.Log(hero); //Hero클래스의 인스턴스
//다른 컴포넌트 인스턴스의 메서드를 호출
hero.SayHello();
}
// Update is called once per frame
void Update()
{
}
}
손으로 인스펙터로 Hero 안넣어도 코딩으로 넣기
using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class App : MonoBehaviour
{
public Hero hero;
// Start is called before the first frame update
void Start()
{
//활성화 되어있는 게임오브젝트를 찾을 수 있음
GameObject go = GameObject.Find("Hero");
Debug.Log(go);
this.hero = go.GetComponent<Hero>();
//타입으로 찾는 방법
this.hero = GameObject.FindObjectOfType<Hero>();
}
// Update is called once per frame
void Update()
{
}
}
'유니티 기초' 카테고리의 다른 글
pixel_sword (0) | 2023.08.03 |
---|---|
챕터6 고양이 점프[점프막기, 카메라 아래 최소치 정하기 미완] (0) | 2023.08.02 |
챕터5 고양이탈출 - Prefab (0) | 2023.08.02 |
챕터5 고양이탈출 (0) | 2023.08.01 |
자동차 스와이프 SwipeCar (0) | 2023.08.01 |