コード例 #1
0
    public void showHeroLifePlate(GOAppear.AppearInfo info)
    {
        String path = null;

        if (GameStart.heroid == info.obj_type_id)
        {
            path = "Prefab/HeroLifePlateGreen";
        }
        else
        {
            path = "Prefab/HeroLifePlateRed";
        }
        if (mHasLifeBar)
        {
            BloodBar.SetVisible(true);
            return;
        }
        mHasLifeBar = true;
        GameObject heroLifeModel = Resources.Load(path) as GameObject;

        heroLife = GameObject.Instantiate(heroLifeModel) as GameObject;
        heroLifeDic.Add((int)info.obj_type_id, heroLife);
        hpSprite = heroLife.transform.Find("Control_Hp/Foreground").GetComponent <UISprite>();//绿
        mpSprite = heroLife.transform.Find("Control_Mp/Foreground").GetComponent <UISprite>();

        //Debug.LogError("showHeroLifePlate" + info.obj_type_id);
    }
コード例 #2
0
 //隐藏血条
 public void HideBloodBar()
 {
     if (BloodBar != null)
     {
         BloodBar.SetVisible(false);
     }
 }
コード例 #3
0
    public void AddStatus(BodyPart bodyPart)
    {
        GameObject     statusGameObject = Instantiate(statusPrefab, statusPanel.transform);
        BodyPartStatus status           = statusGameObject.GetComponent <BodyPartStatus>();

        status.name = bodyPart.name;

        if (bodyPart is Organ)
        {
            status.partName.text = "  " + bodyPart.name;
        }
        else
        {
            status.partName.text = bodyPart.name;
        }

        BloodBar  bloodBar  = status.bloodBar;
        OxygenBar oxygenBar = status.oxygenBar;
        HealthBar healthBar = status.healthBar;

        bloodBar.bodyPart = bodyPart;
        bloodBar.MinMax();
        oxygenBar.bodyPart = bodyPart;
        oxygenBar.MinMax();
        healthBar.bodyPart = bodyPart;
        healthBar.MinMax();
    }
コード例 #4
0
 void Start()
 {
     this.bloodBar = ScriptEF.CreateBloodBar(gameObject);
     gameObject.animation.wrapMode = WrapMode.Once;
     cameraCtrl   = Camera.main.GetComponent <CameraCtrl>();
     myController = GetComponent <CharacterController>();
     initObj();
 }
コード例 #5
0
 //隐藏血条
 public void HideBloodBar()
 {
     if (BloodBar != null)
     {
         BloodBar.SetVisible(false);
         mHasLifeBar = false;
     }
 }
コード例 #6
0
    ///// <summary>
    ///// 当绘制单位时设置shader
    ///// TODO 解决加载单位没有shader问题
    ///// </summary>
    //private void OnWillRenderObject()
    //{
    //    if (!isSetShader)
    //    {
    //        isSetShader = true;
    //        var rander = GetComponent<Renderer>();
    //        if (rander != null)
    //        {
    //            var core = PacketManage.Single.GetPacket("core");
    //            if (core != null)
    //            {
    //                var shader = core.Load("Avatar_N.shader") as Shader;
    //                if (shader != null)
    //                {
    //                    rander.material.shader = shader;
    //                }
    //            }

    //        }
    //    }
    //}

    /// <summary>
    /// 加载
    /// </summary>
    private void LoadSource()
    {
        NowWorldCamera = GameObject.Find("/PTZCamera/SceneryCamera").GetComponent <Camera>();
        Head           = transform.Find("head").gameObject.transform;
        GameObject parent = GameObject.Find("ui_fightU/bloodParent");

        bloodBar = GameObjectExtension.InstantiateFromPacket("ui_fightu", "blood.prefab", parent).transform;
        bloodBar.localPosition = Vector3.zero;
        bloodBar.localScale    = Vector3.one;
        bloodBarCom            = bloodBar.gameObject.AddComponent <BloodBar>();
        //ModelRander = gameObject.GetComponent<MFAModelRender>();
    }
コード例 #7
0
    public static BloodBar CreateBloodBar(GameObject parent)
    {
        Transform  pt        = parent.transform;
        GameObject heroPanel = GameObject.Instantiate(ObjectManager.bloodBar, pt.position, pt.rotation) as GameObject;

        heroPanel.transform.localScale = new Vector3(0.04f, 0.04f, 0.04f);
        BloodBar bloodBar = heroPanel.GetComponent <BloodBar>();

        bloodBar.setParent(parent);
        bloodBar.Damaged(100, 100);
        bloodBar.distance = 2f;
        return(bloodBar);
    }
コード例 #8
0
    /// <summary>
    /// 目标受到伤害或者加血等的血条上的文字效果
    /// </summary>
    /// <param name="packer">生命值变更包装类</param>
    public static void ShowHurtNum(FightManager.HealthChangePacker packer)
    {
        if (packer.ObjType == ObjectID.ObjectType.MyJiDi || packer.ObjType == ObjectID.ObjectType.EnemyJiDi)
        {
            Tools.CallMethod("userInfo_controller", "changeJiDiHP", (int)packer.ObjType, packer.CurrentHp, packer.TotalHp);
        }
        else
        {
            int       hurtNum_int = (int)packer.ChangeValue;
            BloodBar  mgo         = packer.GameObj.GetComponent <RanderControl>().bloodBarCom;
            Transform deltaHP     = GameObjectExtension.InstantiateFromPacket("ui_fightu", "deltaHP.prefab", mgo.gameObject).transform;
            deltaHP.localPosition = new Vector3(Random.value * 50 - 25, -Random.value * 20, 0);
            EventDelegate _event = new EventDelegate(mgo, "DestroyDeltaHP");
            _event.parameters[0] = new EventDelegate.Parameter(deltaHP);
            deltaHP.GetChild(0).GetComponent <TweenPosition>().AddOnFinished(_event);
            switch (packer.HurtType)
            {
            case FightManager.HurtType.NormalAttack:    //普通
                deltaHP.GetChild(0).GetComponent <UISprite>().spriteName       = null;
                deltaHP.GetChild(0).GetChild(0).GetComponent <UILabel>().color = Color.white;
                deltaHP.GetChild(0).GetChild(0).GetComponent <UILabel>().text  = "" + hurtNum_int;
                break;

            case FightManager.HurtType.Crit:    //暴击
                deltaHP.GetChild(0).GetComponent <UISprite>().spriteName       = "zhandou_yuan_xuanzhong";
                deltaHP.GetChild(0).GetChild(0).GetComponent <UILabel>().color = Color.red;
                deltaHP.GetChild(0).GetChild(0).GetComponent <UILabel>().text  = "" + hurtNum_int;
                break;

            case FightManager.HurtType.SkillAttack:    //技能
                deltaHP.GetChild(0).GetComponent <UISprite>().spriteName       = null;
                deltaHP.GetChild(0).GetChild(0).GetComponent <UILabel>().color = Color.blue;
                deltaHP.GetChild(0).GetChild(0).GetComponent <UILabel>().text  = "" + hurtNum_int;
                break;

            case FightManager.HurtType.Miss:    //miss
                deltaHP.GetChild(0).GetComponent <UISprite>().spriteName       = null;
                deltaHP.GetChild(0).GetChild(0).GetComponent <UILabel>().color = Color.gray;
                deltaHP.GetChild(0).GetChild(0).GetComponent <UILabel>().text  = "miss";
                break;

            case FightManager.HurtType.Cure:    //治疗
                deltaHP.GetChild(0).GetComponent <UISprite>().spriteName       = null;
                deltaHP.GetChild(0).GetChild(0).GetComponent <UILabel>().color = Color.green;
                deltaHP.GetChild(0).GetChild(0).GetComponent <UILabel>().text  = "+" + hurtNum_int;
                break;
            }
        }
    }
コード例 #9
0
        //显示血条
        public void ShowBloodBar()
        {
            if (BloodBar != null)
            {
                BloodBar.SetVisible(true);
                this.OnUpdateHp();

                //Player需要更新Mp
                if (entityType == EntityType.Player)
                {
                    BloodBarPlayer BloodBarPlayer = BloodBar as BloodBarPlayer;
                    BloodBarPlayer.UpdateMp();
                }
            }
        }
コード例 #10
0
        //
        public void UpdateHpChange(byte reason, float curHp)
        {
            float changeValue = Hp - curHp;

            SetHp((float)curHp);

            if (BloodBar != null)
            {
                BloodBar.UpdateHP();//这是血条管理器中血条的更新
            }
            //如果变化原因不是恢复 并且血条不为空
            if (reason != HpUpdateOfRecover && BloodBar != null)
            {
                BloodBar.XueTiaoDmgShow(Hp, changeValue, HpMax);//血条缓慢扣除 指的是绿色血条后边的灰色血条
            }
        }
コード例 #11
0
    static int set_bloodBarCom(IntPtr L)
    {
        object o = null;

        try
        {
            o = ToLua.ToObject(L, 1);
            RanderControl obj  = (RanderControl)o;
            BloodBar      arg0 = (BloodBar)ToLua.CheckUnityObject(L, 2, typeof(BloodBar));
            obj.bloodBarCom = arg0;
            return(0);
        }
        catch (Exception e)
        {
            return(LuaDLL.toluaL_exception(L, e, o == null ? "attempt to index bloodBarCom on a nil value" : e.Message));
        }
    }
コード例 #12
0
    static int get_bloodBarCom(IntPtr L)
    {
        object o = null;

        try
        {
            o = ToLua.ToObject(L, 1);
            RanderControl obj = (RanderControl)o;
            BloodBar      ret = obj.bloodBarCom;
            ToLua.Push(L, ret);
            return(1);
        }
        catch (Exception e)
        {
            return(LuaDLL.toluaL_exception(L, e, o == null ? "attempt to index bloodBarCom on a nil value" : e.Message));
        }
    }
コード例 #13
0
    IEnumerator GetBlood(int viewID, int crtBlood, int maxBlood, string name)
    {
        while (GameObject.Find("BloodCanvas") == null)
        {
            yield return(0);
        }

        Debug.Log("收到" + viewID);
        //实例化血条
        GameObject go = Instantiate(Resources.Load <GameObject>("Blood"));

        //查找所有玩家
        GameObject[] players = GameObject.FindGameObjectsWithTag("Player");
        //根据viewID查找目标玩家
        for (int i = 0; i < players.Length; i++)
        {
            //找到目标玩家
            if (players[i].GetComponent <PhotonView>().ViewID == viewID)
            {
                //设置血条跟随的玩家
                go.GetComponent <BloodBar>().player            = players[i].transform;
                players[i].GetComponent <PlayerBlood>().bBarGo = go;
                //查找画布
                canvas = GameObject.Find("BloodCanvas");
                //把血条放在画布下
                go.transform.SetParent(canvas.transform);
                BloodBar bBar = go.GetComponent <BloodBar>();
                bBar.SetMaxBlood(maxBlood);
                bBar.SetBlood(crtBlood);
                bBar.SetName(name);
                bBar.selfId = viewID;
                players[i].GetComponent <PlayerBlood>().bloodValue = maxBlood;
                break;
            }
        }

        //实例化血条
        // bloodBarGo = Instantiate(Resources.Load<GameObject>("Blood"));
        //bloodBarGo = PhotonNetwork.Instantiate("Blood", Vector3.zero, Quaternion.identity);


        //pv.RPC("SetBloodBar",RpcTarget.AllBufferedViaServer, bloodBarGo.GetComponent<PhotonView>().ViewID);
    }
コード例 #14
0
    public virtual void Init(BattleUnit bu)
    {
        m_BattleUnit = bu;
        RegEvent();

        string res;

        if (bu.IsPlayerSide)
        {
            res = ConfigMng.Instance.GetConfig <ClientHeroCfg> ().HeroClientData [bu.OrgData.unit_id].res_path;
        }
        else
        {
            res = ConfigMng.Instance.GetConfig <ClientHeroCfg> ().MonsterClientData [bu.OrgData.unit_id].res_path;
        }

        m_ModelObj = CommonUtil.ResourceMng.Instance.GetResource(res, CommonUtil.ResourceType.Model) as GameObject;
        if (m_ModelObj == null)
        {
            CommonLogger.LogError("Model Can't loaded: " + res);
            return;
        }
        m_AniCtrl = m_ModelObj.GetComponent <Animator> ();

        StandPos p = GameHelper.Game.FindEmptyPos(bu.IsPlayerSide ? StandType.Player : StandType.Enemy);

        if (p != null)
        {
            m_ModelObj.transform.position      = p.transform.position;
            m_ModelObj.transform.localRotation = p.transform.localRotation;
            GameHelper.Game.OccupyStandPos(p, bu.OrgData.unit_id);
            m_StandPos = p;
            m_StandPos.SetTapHero(this);
        }

        InitTaps();

        m_BloodBar        = (UIManager.Instance.AddUI("UI/BloodBar") as GameObject).GetComponent <BloodBar>();
        m_StateProgress   = (UIManager.Instance.AddUI("UI/StateProgressBar") as GameObject).GetComponent <UIProgressBar>();
        m_EmpowerProgress = (UIManager.Instance.AddUI("UI/EmpowerProgressBar") as GameObject).GetComponent <UIProgressBar>();
        CheckStateProgressBarShow();
        UpdateBloodBarPos();
    }
コード例 #15
0
 // Start is called before the first frame update
 void Start()
 {
     bloodBar1  = GameObject.FindWithTag("BloodBar_1").GetComponent <BloodBar>();
     bloodBar2  = GameObject.FindWithTag("BloodBar_2").GetComponent <BloodBar>();
     hurtEffect = GameObject.FindWithTag("HurtEffect").GetComponent <HurtEffect>();
 }
コード例 #16
0
        private void OnEnable()
        {
            progress = serializedObject.FindProperty("_progress");

            _bloodBar = (BloodBar)target;
        }