Unity_beginner #6

haechi·2021년 7월 11일
0

unity

목록 보기
6/39

210711
unity_beginner #6


  • programming
    지금까지는 unity 자체에서 제공하는 component를 사용하였다.
    이 component를 직접 구현하기 위해서는 script를 이용한다.
    대부분 C#을 사용한다.
    projector view -> create -> C# script -> 더블 클릭시 vs로 이동한다.

    기본적인 자료형은 c와 같다.
    주의할 점은 float형을 선언 후 초기화시 값 뒤에 f를 붙여줘야한다.
    ex)float height = 157.7f;

script를 저장 후 파일을 오브젝트에 드래그하면 component적용이 완료된다.

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Ball : MonoBehaviour // Ball -> 클래스의 이름 , MonoBehaviour -> 유니티 클래스에서 기본적으로 적어야하는 코드
{
    int count = 1;
    float startingPoint;

    // Method
    // Start is called before the first frame update 시작될 때
    void Start()
    {
        Debug.Log("Start");  //괄호안의 내용을 콘솔에 출력
        startingPoint = transform.position.z;
    }

    // Update is called once per frame 매 프레임마다
    void Update()
    {
        float distance;
        distance = transform.position.z - startingPoint;
        Debug.Log(distance);
    }

    void TestMethod()   // 새롭게 추가한 Method
    {
        Debug.Log("This is TestMethod");
    }
}

-위는 거리를 이동거리를 출력하는 코드이다.
좌표에 대한 접근은 transform.position.z 와 같이 할 수 있다.
-아래와 같이 log에 출력된다.


  • 장애물 추가
    -새로운 오브젝트 추가 -> cylinder -> 좌표 설정 -> C# script 추가 및 component 적용
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Obstacle : MonoBehaviour
{
    float delta = -0.1f;
    // Start is called before the first frame update
    void Start()
    {
        
    }

    // Update is called once per frame
    void Update()
    {
        float newXPosition = transform.position.x + delta;
        transform.position = new Vector3(newXPosition, 2, -7);
        if(transform.position.x < -3.5)
        {
            delta = 0.1f;
        }
        else if(transform.position.x > 3.5)
        {
            delta = -0.1f;
        }
    }
}

실행시 기둥이 좌우로 움직이면서 장애물이 된다.

참고
https://programmers.co.kr/learn/courses/1/lessons/571

profile
공부중인 것들 기록

0개의 댓글