Unity3d 如何修复unity中画布的镜像

Unity3d 如何修复unity中画布的镜像,unity3d,mirroring,Unity3d,Mirroring,我有一个简单的问题:我如何才能避免翻转我的健康栏附加到主角?我不知道该怎么办。您可以在此处下载项目: 很抱歉,我无法将其附加到此处。只要健康栏有一个值,如确定健康栏比例的浮点数,您只需将此行添加到void Update()函数中,它将修复健康栏的翻转: health = Mathf.Clamp(health, 0, maxHealth); 其中,健康状况是确定健康栏长度和健康栏比例的值。(抱歉,如果让人困惑,我只是不知道你在使用什么变量,下次我推荐时你应该包含一段代码)其中maxHealth是

我有一个简单的问题:我如何才能避免翻转我的健康栏附加到主角?我不知道该怎么办。您可以在此处下载项目:


很抱歉,我无法将其附加到此处。

只要健康栏有一个值,如确定健康栏比例的浮点数,您只需将此行添加到
void Update()
函数中,它将修复健康栏的翻转:

health = Mathf.Clamp(health, 0, maxHealth);
其中,健康状况是确定健康栏长度和健康栏比例的值。(抱歉,如果让人困惑,我只是不知道你在使用什么变量,下次我推荐时你应该包含一段代码)其中maxHealth是玩家的最大健康值或健康栏的最大刻度

[编辑] 将这行代码放入更新函数中

currentHealth = Mathf.Clamp(currentHealth, 0, maxHealth);
简单地说,它将currentHealth值固定在0和maxHealth之间 因此,它不能高于maxHealth,也不能低于零


祝你的项目好运D

只要健康栏只有一个值,就像决定健康栏比例的浮点数一样,您只需在
void Update()
函数中添加这一行,它将修复健康栏的翻转:

health = Mathf.Clamp(health, 0, maxHealth);
其中,健康状况是确定健康栏长度和健康栏比例的值。(抱歉,如果让人困惑,我只是不知道你在使用什么变量,下次我推荐时你应该包含一段代码)其中maxHealth是玩家的最大健康值或健康栏的最大刻度

[编辑] 将这行代码放入更新函数中

currentHealth = Mathf.Clamp(currentHealth, 0, maxHealth);
简单地说,它将currentHealth值固定在0和maxHealth之间 因此,它不能高于maxHealth,也不能低于零

祝你的项目好运给你

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

public class Player : MonoBehaviour
{

    public int maxHealth = 100;
    public int currentHealth;

    public Healthbar healthBar;

    // Start is called before the first frame update
    void Start()
    {
        currentHealth = maxHealth;
        healthBar.SetMaxHealth(maxHealth);
    }

    // Update is called once per frame
    void Update()
    {
        if (Input.GetKeyDown(KeyCode.Space))
        {
            TakeDamage(20);
        }
    }

    void TakeDamage(int damage)
    {
        currentHealth -= damage;

        healthBar.SetHealth(currentHealth);
    }
}
给你

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

public class Player : MonoBehaviour
{

    public int maxHealth = 100;
    public int currentHealth;

    public Healthbar healthBar;

    // Start is called before the first frame update
    void Start()
    {
        currentHealth = maxHealth;
        healthBar.SetMaxHealth(maxHealth);
    }

    // Update is called once per frame
    void Update()
    {
        if (Input.GetKeyDown(KeyCode.Space))
        {
            TakeDamage(20);
        }
    }

    void TakeDamage(int damage)
    {
        currentHealth -= damage;

        healthBar.SetHealth(currentHealth);
    }
}

顺便说一句,整个画布都翻转了,所以谢谢你的回答,但是没有帮助。我认为您正在将角色的翻转代码应用到画布或画布中的所有内容。检查您是否在代码中将错误的游戏对象设置为变量。您可能已经添加了显示玩家健康状况的ui。它不会翻转整个cancas,因为操纵杆仍然处于相同的位置。顺便说一句,整个画布都会翻转,所以谢谢你的回答,但它没有帮助。哦。我认为您正在将角色的翻转代码应用到画布或画布中的所有内容。检查您是否在代码中将错误的游戏对象设置为变量。您可能已经添加了显示玩家健康状况的ui。虽然答案已准备就绪,但操纵杆仍处于相同的位置,因此不会翻转整个cancas