

https://free-game-assets.itch.io/free-horizontal-game-backgrounds



https://assetstore.unity.com/packages/2d/characters/2d-cute-birds-4-in-1-mini-pack-237273#content










함수 설명
- Start() : 처음 활성화시에 한 번 호출
- Update() : 프레임마다 호출
- FixedUpdate() : 고정된 시간 간격으로 호출. 물리작업시 주로 사용
- LateUpdate() : 모든 Update() 함수 이후에 호출함
- Awake() : 스크립트나 오브젝트가 처음 생성될 때 먼저 호출
- OnEable() / OnDisable() : 오브젝트가 활성화/비활성화 될 때 호출.
함수의 호출 순서
Start() -> Update() -> FixedUpdate() -> Update() -> FixedUpdate() -> .....
using UnityEngine;
public class Backgound : MonoBehaviour
{
public float speed = 2;
public float width = 5;
void Start()
{
}
// Update is called once per frame
void Update()
{
// 프레임마다 left로 움직이는 코드입니다.
transform.Translate(Vector2.left * Time.deltaTime * speed);
if(transform.position.x < -width)
{
transform.Translate(new Vector2(width*2, 0));
}
}
}

public으로 정의한 변수는 Inspector에서 접근 가능
But! 스크립트보다 유니티 Inspector에 값이 우선순위로 들어감. *주의*




using UnityEngine;
public class Player : MonoBehaviour
{
public float Gravity = 10f;
float v = 0;
void Start()
{
v = 0;
}
void Update()
{
v += Gravity * Time.deltaTime;
}
private void FixedUpdate()
{
transform.Translate(Vector2.down*v*Time.fixedDeltaTime);
}
}
using UnityEngine;
public class Player : MonoBehaviour
{
public float Gravity = 10f;
float v = 0;
void Start()
{
v = 0;
}
void Update()
{
if (Input.GetButtonDown("Jump"))
{
Debug.Log("Jump Pressed");
}
if (Input.GetButtonUp("Jump"))
{
Debug.Log("Jump Released");
}
if (Input.GetButton("Jump"))
{
Debug.Log("Jump Kept");
}
v += Gravity * Time.deltaTime;
}
private void FixedUpdate()
{
transform.Translate(Vector2.down*v*Time.fixedDeltaTime);
}
}
정상 작동한다면
using UnityEngine;
public class Player : MonoBehaviour
{
public float Gravity = 10f;
float v = 0;
void Start()
{
v = 0;
}
void Update()
{
// 스페이스바를 누르면 올라가고
if (Input.GetButton("Jump"))
{
v -= Accel * Time.deltaTime;
}
// 때면 떨어짐
else
{
v += Gravity * Time.deltaTime;
}
}
private void FixedUpdate()
{
transform.Translate(Vector2.down*v*Time.fixedDeltaTime);
}
}

유니티로 불러오고
씬에 벽을 추가하고 벽 전용 레이어를 추가했다.
