首页 > 解决方案 > 统一枪翻转

问题描述

我正在制作一个自上而下的射击游戏,当我将枪指向后方时,它是颠倒的。这是我的播放器脚本:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Player : MonoBehaviour
{
public float moveSpeed = 5f;
public Rigidbody2D rb;
public Camera cam;
Vector2 movement;
Vector2 mousePos;
public GameObject crossHair;
public SpriteRenderer sr;



void Start() {
    Cursor.visible = false;
}

// Update is called once per frame
void Update()
{
    sr = GetComponent<SpriteRenderer>();
    rb = GetComponent<Rigidbody2D>();
    movement.x = Input.GetAxisRaw("Horizontal");
    movement.y = Input.GetAxisRaw("Vertical");
    mousePos = cam.ScreenToWorldPoint(Input.mousePosition);
    crossHair.transform.position = new Vector2(mousePos.x, mousePos.y);

}

void FixedUpdate()
{
    rb.velocity = new Vector2(movement.x, movement.y) * moveSpeed;

    Vector3 lookDir = mousePos - rb.position;
    lookDir.Normalize();
    float angle = Mathf.Atan2(lookDir.y, lookDir.x) * Mathf.Rad2Deg;
    rb.rotation = angle;

    if (transform.position.y >= 6.4f) {
        transform.position = new Vector2(transform.position.x, 6.4f);
    }
    if (transform.position.y <= -6.4f) {
        transform.position = new Vector2(transform.position.x, -6.4f);
    }
    if (transform.position.x >= 11.9) {
        transform.position = new Vector2(11.9f, transform.position.y);
    }
    if (transform.position.x <= -11.9) {
        transform.position = new Vector2(-11.9f, transform.position.y);
    }
    float z = transform.rotation.eulerAngles.z;
    if (z > 0 && z < 180 && !sr.flipX)
        sr.flipX = true;
    else if (z < 360 && z > 180 && sr.flipX)
        sr.flipX = false;
}

void Flip(){
    Vector3 Scaler = transform.localScale;
    Scaler.y *= -1;
    transform.localScale = Scaler;
}

}

我的枪倒了

我已经搜索了很多,但我无法让它工作。我尝试使用 spriteRenderer,但它也不起作用。我真的需要帮助。(顺便说一句,我的播放器与播放器一起旋转)

标签: visual-studio

解决方案


在我看来,您的系统只是在旋转物体,尽管它面向的方向是什么。我想如果你放一个指向你喜欢的方向的箭头或三角形而不是枪,它看起来会很好。

所以我要做的是:

if (the rotation is backwards)
   render the sprite flipped vertically
else
   render the sprite normally

推荐阅读