unity应用实例——从头撸一个全新的FPS游戏(5)

这篇文章进行对游戏ui逻辑的总结。

首先给每个机器人添加一个血条的效果,在机器人的游戏物体下创建一个画布,并添加一个slider,只保留其中的Fill Area,把其他的删掉,如图。

将Fill中的image修改为红色,然后给slider添加一个脚本,主要功能是让slider的value的值与血量占比相当

using UnityEngine;
using UnityEngine.UI;
public class follower : MonoBehaviour
{
    [SerializeField]
    private float m_offsety;
    public Transform m_robot;
    private float m_robotinithp;//机器人初始的hp

    private void Start()
    {
        m_robotinithp = m_robot.gameObject.GetComponent<RobotController>().M_hp;
    }
    private void Update()
    {
        //确定血条位置
        gameObject.transform.position = 
            new Vector3(m_robot.position.x, m_robot.position.y + m_offsety, m_robot.position.z);
        //根据实际情况扣血
        gameObject.GetComponent<Slider>().value=
            ((m_robot.gameObject.GetComponent<RobotController>().M_hp / m_robotinithp));
    }
}

然后对该画布的Canvas组件中的Render Mode进行如图设置:

创建一个新的相机,将它拖入Canvas组件中的Render Camera,在第三篇文章中的gamemanager类中拥有该相机游戏对象的引用,名为m_secondcamera,并将其与主相机的transform同步。这样子就相当与每个机器人都拥有一个与血量相当slider,并且它时刻面向玩家的视角,形成血条的效果。

血条设置好以后,创建多个scene来存储关卡,把每个scene的地图自己div一下,将多个机器人放置其中并设置好巡逻点。然后开始进行ui脚本的创建。

首先是第一个scene也就是主菜单,创建一个名为UI的空物体,在它下面创建三个画布,再为每个画布添加各种功能对象,如图:

创建脚本进行管理,挂在ui上

using UnityEngine;
using UnityEngine.SceneManagement;
using UnityEngine.UI;
public class menuui : MonoBehaviour {

    public GameObject m_setcanvas;
    public GameObject m_Authorcanvas;
    public GameObject m_volumeslider;

    private void Start()
    {
        m_setcanvas.SetActive(false);
        m_Authorcanvas.SetActive(false);

        m_volumeslider.GetCompo
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值