유니티 5.4를 사용하여 2D 게임을 뒤집습니다.내 플레이어를 따라 다니는 적군 스프라이트 회전
나는 4 개의 다른 스크립트로 탱크 적의 스프라이트를 가지고 있습니다. 하나는 이동하고 다른 하나는 플레이어를 따라 이동하고 나머지 하나는 HP를 제어하는 데미지 핸들러 스크립트입니다. 문제는 내가 스프라이트가 대각선으로 움직이거나 반대 방향으로 향하는 게임을 할 때입니다. 스크린 샷). 내 스프라이트는 항상 플레이어에게 고정되어 있습니다.
내 플레이어를 다음과 같은 사항에 대해이 스크립트
는using UnityEngine;
using System.Collections;
public class FollowPlayer : MonoBehaviour {
public float rotSpeed = 90f;
Transform player;
void Update() {
if(player == null)
{
GameObject go = GameObject.Find("Player");
if(go != null)
{
player = go.transform;
}
}
if (player == null)
return;
Vector3 dir = player.position - transform.position;
dir.Normalize();
float zAngle = Mathf.Atan2(dir.y, dir.x) * Mathf.Rad2Deg;
Quaternion desiredRot= Quaternion.Euler(zAngle, 0, 0);
transform.rotation = Quaternion.RotateTowards(transform.rotation, desiredRot, rotSpeed * Time.deltaTime);
}}
내가 선수를 향한 내 스프라이트의 움직임에 문제가 코드의 일부이다 생각입니다 와
float zAngle = Mathf.Atan2(dir.y, dir.x) * Mathf.Rad2Deg;
나는 그 선의 전체적인 의미를 거의 이해하지 못한다고 믿는다. 아니면 너무 복잡합니다.
추가 설명. 내 탱크 스프라이트가 내 플레이어를 따라야합니다 (항상 나를 때려 눕힐 때까지). 포탑은 날 쏠 때부터 내 선수를 향해 마주보고 있어야합니다. 내 총알은 올바른 방향으로 발사되지만 내 스프라이트는 내 선수쪽으로 올바르게 이동하지만 다른 방향으로 향합니다.
질문을 읽지는 않았지만 'Mathf.Atan2 (dir.y, dir.x) * Mathf.Rad2Deg'는 각도가 AoB와 같은 각도를 의미합니다. 여기서 A = x, 0 및 B = x, y 및 o = 0,0 – Bijan
문제는 분명하지 않습니다. 적 탱크가 항상 당신을 보길 원하십니까? –
그것이 원점입니까? 그게 내 선수를 따라갈 지점이 어디 있는지 의미하니? 왜냐하면 나는 플로트 각도를 desiredRot에 사용하고 있기 때문이다. – Ryoukami