Untitled
unknown
plain_text
4 years ago
1.5 kB
13
Indexable
\\ KAMERA
public Transform target;
// Start is called before the first frame update
void Start()
{
}
// Update is called once per frame
void Update()
{
transform.position = new Vector3(target.transform.position.x, target.transform.position.y, transform.position.z);
}
\\ PLAYER
public float moveSpeed;
private bool isMoving;
private Vector2 input;
private Animator anim;
private void Awake()
{
anim = GetComponent<Animator>();
}
void Update()
{
if (!isMoving)
{
input.x = Input.GetAxisRaw("Horizontal");
input.y = Input.GetAxisRaw("Vertical");
if (input.x != 0) input.y = 0;
if(input != Vector2.zero)
{
anim.SetFloat("MoveX", input.x);
anim.SetFloat("MoveY", input.y);
var targetPos = transform.position;
targetPos.x += input.x;
targetPos.y += input.y;
StartCoroutine(Move(targetPos));
}
}
anim.SetBool("IsMoving", isMoving);
}
IEnumerator Move(Vector3 targetPos)
{
isMoving = true;
while((targetPos - transform.position).sqrMagnitude > Mathf.Epsilon)
{
transform.position = Vector3.MoveTowards(transform.position, targetPos, moveSpeed * Time.deltaTime);
yield return null;
}
transform.position = targetPos;
isMoving = false;
}Editor is loading...