Unity5-GUI-HP-Bar问题

Ant*_*rro 1 c# unity-game-engine

所以我设计了一个定制的HP条,并将它对齐到我想要它的位置以及我希望它看起来如何.

假设看起来像这样

但是,当我按下播放(非全屏模式,甚至没有测试过)时,图像背景稍微向右滑动或绿色填充图像向左滑动.

不应该看起来像这样

我不知道它为什么这样做或如何解决它.我愿意提供您需要的任何信息,例如检查员的代码或截图.

这是barview在sceneview画布中的屏幕截图.

GUI栏的实际SceneView

你可以看到,当不玩游戏时,酒吧工作正常

正如您所看到的,当没有按下播放时,条形图正常运行.上面的图片是半满的.下图为空.

假设空的时候看

问题的第2部分:

我也在使用播放器正确旋转HP杆时遇到问题.

假设看起来像这样

但是,当我向左或向右转或面朝上时:

面对面的球员应该落后于前方

面对正确的球员[![] [8]] 9

所以你可以看到HP条不能随播放器的运动正确旋转; 虽然它确实完美,但是酒吧不会相应地旋转.我可以提供一些移动代码和我用来跟踪玩家位置的代码.我所做的是创建了一个球体并将其附加到玩家身上.然后,我将用于跟踪玩家的脚本附加到该球体上.然后我删除了球体的网格渲染和盒子对撞机.

健康栏脚本

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

public class PHealth : MonoBehaviour {

[Header("HP Bar Images")]
[SerializeField]
private Image HpBarBG;
[SerializeField]
private Image HpBarFillBar;
private float imgFill = 1;





void Update () {
   FillBar()
}
private void FillBar(){
   HpBarFillBar.fillAmount = imgFill;
}


}
Run Code Online (Sandbox Code Playgroud)

玩家运动脚本

public GameObject player;
public Vector3 localscale;
// public Transform start, end;

[SerializeField]
private float speed = 5;



void Start () {

}

// Update is called once per frame
void Update ()
{
    /*
                ******** RAYCAST TO DETECT WALLS BELOW *******
     */
   //  WallDetection(); //Cast ray to detect walls

    /*
           *********      MOVEMENT CODE BELOW       *********
     */
    if (Input.GetKey(KeyCode.W)|| Input.GetKey(KeyCode.UpArrow)) // Move 
        Forward
    {
        player.transform.Translate(Vector2.up * speed * Time.deltaTime, 
        Space.World);
        transform.eulerAngles = new Vector2(0, 180);
    }
    }//End of class
Run Code Online (Sandbox Code Playgroud)

vew*_*ire 5

我建议您将代码添加到您的问题中,以便我们了解完整情况.在你这样做之前,我只能给你一些建议和建议.我会修改这个答案,所以它后来成了一个真正的答案.

同时,你使用什么类型的画布?从层次结构来看,我认为它处于任何一种屏幕空间模式中.你有没有考虑过你的播放器的世界空间画布?我相信它会以您想要的方式自然旋转.玩家可以放大和缩小,并且玩家角色的旋转固定为90度增量吗?

此外,您确定要运行健康栏吗?倒过来?将它固定在角色的精灵之上的常规位置不是一个更好的主意,即使这在技术上"低于"当时的角色吗?

最后,如果你不介意我问:为什么Unity 5?它之后发布了几个主要版本,2018年即将结束.虽然公平,但我不知道版本是否会对此产生任何影响,所以我只是好奇.

  • 很高兴听到它,谢谢!我不能等到2019年. (2认同)