우선 해상도에 따른 UI는 간단했다. 그저 내가
해당 REAT TRANSFORM을 안바꾼것이다.
기존 캐릭터 대사 코드에서 수정한건 이름이다.
기존 코드는 위에 이름이 없었지만 이것 또한 구글 스프레드 시트에서 가져와서 이름 또한 사용할 수 있게 만들었다.
기존 코드와 비슷하여 간단했지만 여기서 좀 더 고도화를 하자면 만약에 한 캐릭터의 독백이 아닌 예를 들어 두명의 캐릭터가 말을 하는 거면 어떻게 해야할지 고민을 해보아야 할거 같다.
또한 3D 뷰어 또한 코드로는 구현했으나 문제는 이걸 어떻게 UI에 넣어야 자연스럽게 보일지가 고민이다.
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using StarterAssets;
public class ObjWatcher : MonoBehaviour
{
public Camera mainCamera;
public Camera secondCamera;
public Transform objectToRotate;
public float rotationSpeed = 10f;
//테스트
float rooty;
float rootx;
float speedx = 100.0f;
float speedy = 100.0f;
//
public GameObject player;
private Vector3 mouseReference;
private Vector3 mouseOffset;
private bool isRotating;
void Start()
{
}
void Update()
{
if (isRotating)
{
// rooty와 rootx 값 갱신
rooty += Input.GetAxis("Mouse Y") * speedy * Time.deltaTime;
rootx += Input.GetAxis("Mouse X") * speedx * Time.deltaTime;
rooty = Mathf.Clamp(rooty, -360, 360);
objectToRotate.eulerAngles = new Vector3(rooty, -rootx, 0);
}
if (Input.GetMouseButtonDown(0) && !isRotating)
{
Debug.Log("마우스 왼쪽 버튼을 누르면 회전을 시작합니다.");
isRotating = true;
mouseReference = Input.mousePosition;
}
else if (Input.GetMouseButtonUp(0) && isRotating)
{
isRotating = false;
}
}
public void MoveCameraToTarget()
{
secondCamera.depth = 1;
player.GetComponent<ThirdPersonController>().enabled = false;
}
public void ResetObjectRotation()
{
}
}
해당 문제는 다음주에 해결 할 예정이며 이번 주말에 볼 내용은
주사위 난수,확률
주사위를 통한 확률이다.
이걸 왜 갑자기 하냐는 생각이 들겠지만 뭔가 컨텐츠를 넣을 때 재미 요소하면 확률이다
그리고 이러한 확률적 요소를 잘 버무린 옛날 게임이 있는데 바로 TRPG다.
여러개의 스텟이 있으며 스텟에다가 포인트를 잘 투자한다.
이후 게임을 진행하다 뭔가 행동이나 실행을 하려고 할 때 내가 선택한 스텟을 활용한다면 그때 다이스를 굴린다.
예를 들자면 A캐릭터가 주변 사물을 관찰하여 수상한 점이 없는지 보고 싶다.
그렇다면 관찰력이란 스텟을 활용하기 위해 주사위를 굴렸다.
플레이어의 관찰력 스텟은 50이다.
그런데 주사위는 47이 나왔다면 실패다.
이런식으로 주사위 시스템을 활용한 컨텐츠를 만들면 무궁무진하지 않을까 싶다.
그리고 이걸 토대로 캐릭터의 스텟을 성장시킨다면 더더욱 좋아보이기에 이 시스템을 만들고자한다.
설령 이번 프로젝트에 안쓴다 하더라도 언젠가는 쓰게 만들 것이기 때문에 최대한 학습하여 만들어 보도록 하겠다