반응형
도트 게임 기획 :
running game - 수집형 게임
2020.12.06 시작 - 1일차
소스 파일 : 유니티 asset store 이용
메인 화면 :
위에서 해야할 일 :
1. 다른 버튼 제작(뽑기 버튼 / 무기 도감 / 캐릭터 도감)
2. 게임 이름 정해서 왼쪽 상단에 적기
게임 화면 :
이번에 한 일 :
1. 캐릭터 움직임(애니메이션)
2. 지형 움직이기
다음에 해야할 일 :
0. 배경 찾아서 넣어주기
1. 장애물 설정
2. 충돌 처리 설정
3. 점수 UI 제작 등등
< 스크립트로 애니메이터 파라미터 변경하기 >
1) 애니메이터 선언 및 파리미터 설정 스크립트
Animator animator;
animator = GetComponent<Animator>();
animator.SetBool("jump", true);
2) 형에 따른 파라미터 설정 방식
animator.SetFloat("New Float", 2.2f); //Float형
animator.SetInteger("New Int", 1); //Int형
animator.SetBool("New Bool", true); //Bool형
// F 키 눌렸을 때 파라미터 값 바뀌게 하기
if (Input.GetKeyDown(KeyCode.F))
{
animator.SetFloat("New Float", 2.2f);
}
< 캐릭터, 땅, 장애물 왼쪽으로 움직이게 하기 >
transform.Translate(Vector2.left * Time.deltaTime * moveSpeed);
< 캐릭터 점프 코드 >
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Player : MonoBehaviour
{
bool isJump = false;
bool istop = false;
public float jumpHeight = 0;
public float jumpSpeed = 0;
Vector2 startPos;
Animator animator;
void Start()
{
startPos = transform.position;
animator = GetComponent<Animator>();
}
void Update()
{
if(Input.GetMouseButtonDown(0))
{
isJump = true;
animator.SetBool("jump", true);
Debug.Log("jump");
}
else if(transform.position.y <= startPos.y)
{
isJump = false;
istop = false;
animator.SetBool("jump", false);
transform.position = startPos;
}
if(isJump)
{
if(transform.position.y <= (jumpHeight - 0.1f) && !istop)
{
transform.position = Vector2.Lerp(transform.position, new Vector2(transform.position.x, jumpHeight), jumpSpeed * Time.deltaTime);
}
else
{
istop = true;
}
if (transform.position.y > startPos.y && istop)
{
transform.position = Vector2.MoveTowards(transform.position, startPos, jumpSpeed * Time.deltaTime);
}
}
}
}
< 땅 무한 이동 시키는 코드 >
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Ground : MonoBehaviour
{
public SpriteRenderer[] tiles;
public Sprite[] groundImage;
public float speed;
void Start()
{
temp = tiles[0];
}
SpriteRenderer temp;
void Update()
{
Debug.Log(tiles.Length);
for(int i=0; i<tiles.Length; i++)
{
if(-12>=tiles[i].transform.position.x)
{
for(int q=0; q<tiles.Length; q++)
{
if (temp.transform.position.x < tiles[q].transform.position.x)
temp = tiles[q];
}
tiles[i].transform.position = new Vector2(temp.transform.position.x + 2, temp.transform.position.y);
//tiles[i].sprite = groundImage[Random.Range(0, groundImage.Length)];
}
}
for(int i=0; i<tiles.Length; i++)
{
tiles[i].transform.Translate(new Vector2(-1, 0) * Time.deltaTime * speed);
}
//speed = speed + 0.01f;
}
}
참고 자료 :
www.youtube.com/watch?v=7Vgb8MoWIq8
www.youtube.com/watch?v=IkvYstCzcoc&t=1168s
반응형
'App && Game' 카테고리의 다른 글
[유니티] 애니메이션(animation) 만들기 (0) | 2020.12.14 |
---|---|
[안드로이드 스튜디오] 스크립트로 여러 개의 그림 바꾸기 / drawable 이미지들 배열(array)에 넣어 사용하기 / 사진을 돌아가며 보여주는 화면 만들기 (0) | 2020.12.13 |
[App 제작 프로젝트] 앱 제작 - 3일차 (0) | 2020.10.04 |
[App 제작 프로젝트] 앱 제작 - 2일차 (0) | 2020.09.28 |
[App 제작 프로젝트] 앱 제작 - 1일차 (0) | 2020.09.27 |
댓글