gpt4 book ai didi

c# - 统一: Flip 2D GameObject(Clone) while GetKeyDown

转载 作者:太空宇宙 更新时间:2023-11-03 23:07:23 25 4
gpt4 key购买 nike

我的问题是当我实例化一个 GameObject 时,它应该像我的 Player 一样翻转但当我向左转时,它只是转了一圈。

using UnityEngine;
using System.Collections;

public class beam : MonoBehaviour {

public Transform firePoint;
public move dino;

void Awake()
{
dino = GetComponent<move>();
dino = FindObjectOfType<move>();
firePoint = GameObject.FindGameObjectWithTag("spawn").transform;
}

// Use this for initialization
void Start () {
}

void FixedUpdate ()
{
transform.position = firePoint.position;
}
void Update ()
{
if (dino.GetComponent<move>().facingRight == false)
{
Vector3 theScale = transform.localScale;
theScale.x *= -1;
transform.localScale = theScale;
}

}
}

例如:我的玩家面向右侧,“光束”也面向右侧,但是当我的玩家面向左侧时,“光束”在-1 和 +1 之间切换

希望你明白我的意思。请一些帮助:)

最佳答案

你正在更新方法中进行快速翻转:当恐龙不面对右翻转时,它疯狂地翻转!将 *= 更改为 =,它应该可以工作。或者,如果它已经缩放,则执行此操作:

void Update ()
{
if (dino.GetComponent<move>().facingRight == false)
{
Vector3 theScale = transform.localScale;
theScale.x = Mathf.Abs(theScale.x) * -1;
transform.localScale = theScale;
}
}

注意事项:

最好使用 SpriteRenderer.FlipX = true/false 而不是缩放。

另注:

如果您使用 batching ,非均匀缩放和翻转是致命的。使用多个 Sprite 并在它们之间切换。

关于c# - 统一: Flip 2D GameObject(Clone) while GetKeyDown,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40708739/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com