public override void OnAttach() { CComponent acom = cobj.GetCom("AttrCom"); attrCom = acom as AttrCom; RegBroadcastEvent((int)Const_Util.BATTLE_EVENT.USE_GAS); }
public float GetHeroCarAttr(int key, out Vector3 vecValue) { if (mUnitList.Count > 0) { float value = 0.0f; BattleUnit unit = mUnitList[0]; AttrCom attrCom = unit.GetCom("AttrCom") as AttrCom; attrCom.GetAttr(key, out value, out vecValue); return(value); } vecValue = Vector3.zero; return(0.0f); }
public void Init(Vector2 speedRef) { baseMoveSpeed = new Vector3(speedRef.x, speedRef.y, 0); CComponent acom = cobj.GetCom("AttrCom"); attrCom = acom as AttrCom; attrCom.SetAttr((int)Const_Util.UNIT_ATTR.MOVE_BASE_SPEED, 0, baseMoveSpeed); attrCom.SetAttr((int)Const_Util.UNIT_ATTR.MOVE_CUR_SPEED, 0, speed); unitHangNode = cobj.mGameObj.transform;//.parent; float unitTypeTemp = 0; Vector3 unitTypeUnUse = Vector3.zero; attrCom.GetAttr((int)Const_Util.UNIT_ATTR.UNIT_TYPE, out unitTypeTemp, out unitTypeUnUse); unitType = Mathf.RoundToInt(unitTypeTemp); moveRenderTr = cobj.GetRenderObjTr(); if (unitType != (int)Const_Util.UNIT_TYPE.AI) { if (unitType == (int)Const_Util.UNIT_TYPE.ROLE_HERO) { moveTr = Camera.main.transform; } else { moveTr = cobj.GetRenderObjTr(); } SetMoveSpeed(Vector3.zero); TriggerMoveChg(MoveType.ACC, baseMoveSpeed, TestConfig.HeroMoveAccTime); RegBroadcastEvent((int)Const_Util.BATTLE_EVENT.CHG_DIR); RegBroadcastEvent((int)Const_Util.BATTLE_EVENT.JUMP); RegMsg((int)Const_Util.UNIT_MSG.GAS_ACC); RegMsg((int)Const_Util.UNIT_MSG.SKILL_DESC); } else { moveTr = cobj.GetRenderObjTr(); SetMoveSpeed(baseMoveSpeed); moveType = MoveType.AVG; } hangNodeOriginPos = unitHangNode.localPosition; RegMsg((int)Const_Util.UNIT_MSG.COLLIDER_OCCUR); RegBroadcastEvent((int)Const_Util.BATTLE_EVENT.MOVE_SPEED_RATE); }
public override void Release() { attrCom = null; }
BattleUnit SpawnOneUnit(int playerIdx, int carResID, string resPath, Transform hangNode, Vector2 pos, Vector2 speed, int unitType) { int objID = 0; GameObject obj = ResMgr.instance.CreateObject(resPath, out objID); if (obj == null) { Debug.LogError("ObjMgr SpawnOneUnit obj == null resPath:" + resPath); } BattleUnit unitObj = new BattleUnit(playerIdx, objID, resPath, obj, hangNode, pos, speed, unitType); // attr com AttrCom attrCom = unitObj.GetRenderObjTr().GetComponent <AttrCom>(); if (attrCom == null) { attrCom = unitObj.GetRenderObjTr().gameObject.AddComponent <AttrCom>(); } unitObj.AddCom(attrCom); attrCom.InitAttr(carResID, unitType); // move com MoveCom move = unitObj.GetRenderObjTr().GetComponent <MoveCom>(); if (move == null) { move = unitObj.GetRenderObjTr().gameObject.AddComponent <MoveCom>(); } unitObj.AddCom(move); move.Init(speed); // collider com ColliderCom collider = unitObj.GetRenderObjTr().GetComponent <ColliderCom>(); if (collider == null) { collider = unitObj.GetRenderObjTr().gameObject.AddComponent <ColliderCom>(); } unitObj.AddCom(collider); // Scale com ScaleCom scaleCom = unitObj.GetRenderObjTr().GetComponent <ScaleCom>(); if (scaleCom == null) { scaleCom = unitObj.GetRenderObjTr().gameObject.AddComponent <ScaleCom>(); } unitObj.AddCom(scaleCom); // NitrogenCom NitrogenCom nitrogenCom = unitObj.GetRenderObjTr().GetComponent <NitrogenCom>(); if (nitrogenCom == null) { nitrogenCom = unitObj.GetRenderObjTr().gameObject.AddComponent <NitrogenCom>(); } unitObj.AddCom(nitrogenCom); SkillCom skillCom = unitObj.GetRenderObjTr().GetComponent <SkillCom>(); if (skillCom == null) { skillCom = unitObj.GetRenderObjTr().gameObject.AddComponent <SkillCom>(); } unitObj.AddCom(skillCom); StatusCom statusCom = unitObj.GetRenderObjTr().GetComponent <StatusCom>(); if (statusCom == null) { statusCom = unitObj.GetRenderObjTr().gameObject.AddComponent <StatusCom>(); } unitObj.AddCom(statusCom); return(unitObj); }