根据变换的位置让我的 2d 精灵翻转工作

因此,无论出于何种原因,这段代码都没有响应。我有一个敌人,我一直试图让它面对玩家(敌人周期性地来回掠过玩家的头)。但是,除了在计时器达到 0 时发生翻转(这并不能很好地工作)之外,我无法让 Flip 功能正常工作。我知道 Flipper 功能很好;我已经测试了它和一切。我只是不知道如何告诉敌人,当玩家在它的左边时,要转弯,反之亦然。


using System.Collections;

using System.Collections.Generic;

using UnityEngine;


public class dragoonDetection : MonoBehaviour {


private Rigidbody2D rb;

private Animator anim;

public Transform Player;

private bool facingRight = true;


void Start ()

{

    rb = GetComponent<Rigidbody2D> ();

    anim = GetComponent<Animator> ();

}


void Update()

{

    Flip();

}


    void Flip()

{

    if (Player.transform.localScale.x > 0) {

        transform.localScale = new Vector3 (1.69f, 1.54f, 1f);

    }

        if (Player.transform.localScale.x < 0) {

            transform.localScale = new Vector3 (-1.69f, 1.54f, 1f);

    }

}


void Flipper()

{

    facingRight = !facingRight;

    Vector2 theScale = transform.localScale;

    theScale.x *= -1;

    transform.localScale = theScale;

}

}

有什么想法吗?我宁愿避免使用 FindGameObject,因为它实际上并不是在寻找玩家脚本。它正在寻找一个没有附加到播放器的脚本的子变换。而且因为我有两个不同的玩家游戏对象,您可以在游戏中随时切换它们,所以在这方面对我来说真的不起作用。


缥缈止盈
浏览 90回答 1
1回答
打开App,查看更多内容
随时随地看视频慕课网APP