응애 병아리들 엄마 닭 쫄쫄 따라다니는 스크립트
튜토리얼 안 보고 지금까지 배운 거 바탕으로 우지차 코딩했음
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class AnimationAndMovementControllerForChild : MonoBehaviour
{
Animator animator;
int isWalkingHash;
int isRunningHash;
[SerializeField]
GameObject parent;
[SerializeField]
float positionOffsetX = 0f;
[SerializeField]
float positionOffsetZ = 0f;
[SerializeField]
float rotationFactorPerFrame = 3.0f;
[SerializeField]
float movementSpeed = 0.75f;
[SerializeField]
float runMultiplier = 2.0f;
Vector3 positionToGoTo;
Vector3 positionToLookAt;
Vector3 getGoTo()
{
float x = parent.transform.position.x + ((parent.transform.forward.x * -1) + positionOffsetX);
float z = parent.transform.position.z + ((parent.transform.forward.z * -1) + positionOffsetZ);
return new Vector3(x, 0, z);
}
float getDistance()
{
return Vector3.Distance(getGoTo(), transform.position);
}
private void handleRotation()
{
if (getDistance() < 1)
{
positionToLookAt = parent.transform.position - transform.position;
}
else
{
positionToLookAt = getGoTo() - transform.position;
}
Quaternion currentRotation = transform.rotation;
Quaternion targetRotation = Quaternion.LookRotation(positionToLookAt, Vector3.up);
transform.rotation = Quaternion.Slerp(currentRotation, targetRotation, rotationFactorPerFrame * Time.deltaTime);
}
private void Awake()
{
animator = GetComponent<Animator>();
isWalkingHash = Animator.StringToHash("Walk");
isRunningHash = Animator.StringToHash("Run");
}
void Update()
{
handleRotation();
positionToGoTo = getGoTo();
Debug.Log(getDistance());
if(getDistance() == 0)
{
animator.SetBool(isWalkingHash, false);
animator.SetBool(isRunningHash, false);
}
else if(getDistance() > 2)
{
animator.SetBool(isRunningHash, true);
transform.position = Vector3.MoveTowards(transform.position, positionToGoTo, movementSpeed * runMultiplier * Time.deltaTime);
}
else
{
animator.SetBool(isWalkingHash, true);
animator.SetBool(isRunningHash, false);
transform.position = Vector3.MoveTowards(transform.position, positionToGoTo, movementSpeed * Time.deltaTime);
}
}
}
응애
귀엽다
훌륭 짝짝짝
튀김기on
잘해써 굿굿
개고수다 - dc App