internal override void Init(Animator animator) { base.Init(animator); if (m_AimCtrl == null && Entity != null) { m_AimCtrl = Entity.GetComponentInChildren <IKAimCtrl>(); } }
void IPeMsg.OnMsg(EMsg msg, params object[] args) { switch (msg) { case EMsg.View_Prefab_Build: BiologyViewRoot viewRoot = args[1] as BiologyViewRoot; m_AnimEffectCtrl = viewRoot.ikAnimEffectCtrl; m_IKAimCtrl = viewRoot.ikAimCtrl; m_IKFlashLight = viewRoot.ikFlashLight; m_FBBIK = viewRoot.fbbik; m_GroundFBBIK = viewRoot.grounderFBBIK; m_IKArray = viewRoot.ikArray; if (null != m_IKAimCtrl) { m_IKAimCtrl.SetSmoothMoveState(m_SmoothAim); } m_AutoCloseFBBIK = (null == m_GroundFBBIK); if (null != m_FBBIK) { m_FBBIK.Disable(); m_FBBIK.solver.iterations = 1; m_DefaultMappingValue = m_FBBIK.solver.leftArmMapping.weight; } if (null != m_GroundFBBIK) { m_DefaultSpineBend = m_GroundFBBIK.spineBend; } ikEnable = m_IKEnable; flashLightActive = m_FlashLightActive; enableArmMap = m_SpineMask.Count == 0; enableGrounderSpineEffect = m_SpineMask.Count == 0; break; // case EMsg.Battle_EnterShootMode: // enableGrounderSpineEffect = false; // enableArmMap = false; // break; // case EMsg.Battle_ExitShootMode: // enableGrounderSpineEffect = true; // enableArmMap = true; // break; // case EMsg.Battle_PauseShootMode: // if(null != m_IKAimCtrl) // m_IKAimCtrl.SetActive(false); // break; // case EMsg.Battle_ContinueShootMode: // if(null != m_IKAimCtrl) // m_IKAimCtrl.SetActive(true); // break; } }
public void Reset() { modelController = PEUtil.GetCmpt <PEModelController>(transform); ragdollController = PEUtil.GetCmpt <PERagdollController>(transform); ikArray = PEUtil.GetCmpts <IK>(transform); ikFlashLight = PEUtil.GetCmpt <IKFlashLight>(transform); fbbik = PEUtil.GetCmpt <FullBodyBipedIK>(transform); grounderFBBIK = PEUtil.GetCmpt <GrounderFBBIK>(transform); humanPhyCtrl = PEUtil.GetCmpt <HumanPhyCtrl>(transform); ikAimCtrl = PEUtil.GetCmpt <IKAimCtrl>(transform); ikAnimEffectCtrl = PEUtil.GetCmpt <IKAnimEffectCtrl>(transform); ikDrive = PEUtil.GetCmpt <IKDrive>(transform); defenceTrigger = PEUtil.GetCmpt <PEDefenceTrigger>(transform); pathFinder = PEUtil.GetCmpt <PEPathfinder>(transform); motor = PEUtil.GetCmpt <PEMotor>(transform); steerAgent = PEUtil.GetCmpt <Steer3D.SteerAgent>(transform); animFollow_AF = PEUtil.GetCmpt <AnimFollow_AF>(transform); beatParam = PEUtil.GetCmpt <BeatParam>(transform); moveParam = PEUtil.GetCmpt <MoveParam>(transform); barrelController = PEUtil.GetCmpt <PEBarrelController>(transform); billBoard = PEUtil.GetCmpt <BillBoard>(transform); armorBones = PEUtil.GetCmpt <ArmorBones>(transform); visions = PEUtil.GetCmpts <PEVision>(transform); hears = PEUtil.GetCmpts <PEHearing>(transform); native = PEUtil.GetCmpt <PENative>(transform); monster = PEUtil.GetCmpt <PEMonster>(transform); if (null != modelController) { modelController.ResetModelInfo(); } if (null != animFollow_AF) { animFollow_AF.ResetModelInfo(); } if (null != ragdollController) { ragdollController.ResetRagdoll(); } }
protected IEnumerator ProcPostBoneLoad() { //biologyViewRoot.gameObject.SetActive (false); if (monoPhyCtrl == null) { monoPhyCtrl = biologyViewRoot.humanPhyCtrl; } if (monoIKAimCtrl == null) { monoIKAimCtrl = biologyViewRoot.ikAimCtrl; } if (monoIKAnimCtrl == null) { monoIKAnimCtrl = biologyViewRoot.ikAnimEffectCtrl; } if (monoModelCtrlr == null) { monoModelCtrlr = biologyViewRoot.modelController; } if (monoRagdollCtrlr == null) { monoRagdollCtrlr = biologyViewRoot.ragdollController; } if (monoDefenceTrigger == null) { monoDefenceTrigger = biologyViewRoot.defenceTrigger; } m_MeshBuildEnd = false; if (monoRagdollCtrlr != null) { monoRagdollCtrlr.SetHandler(this); //EMsg.View_Ragdoll_Build } // Collider ignore and other if (monoModelCtrlr != null) { SetupMaterials(mColorID, GetModelName()); if (Entity.proto == EEntityProto.Monster && Entity.Race == ERace.Mankind) { monoModelCtrlr.gameObject.layer = Layer.AIPlayer; } PEUtil.IgnoreCollision(monoModelCtrlr.colliders, monoModelCtrlr.colliders); if (monoRagdollCtrlr != null) { PEUtil.IgnoreCollision(monoModelCtrlr.colliders, monoRagdollCtrlr.colliders); } } BuildOutCollider(biologyViewRoot.gameObject); if (Entity.IsDeath()) { OnDeath(null, null); } else if (monoModelCtrlr != null) { monoModelCtrlr.ActivateDeathMode(false); } HideView(0.01f); if (Entity.Id == 9008) { ActivatePhysics(m_PhyActive); } DoActivateInjured(); yield return(0); if (null == biologyViewRoot) { yield break; } // Proc Mesh if (_coroutineMeshProc != null) { yield return(biologyViewRoot.StartCoroutine(_coroutineMeshProc())); } m_MeshBuildEnd = true; if (null == biologyViewRoot) { yield break; } if (null == Entity) { yield break; } // Send Msg if (monoModelCtrlr != null) { Profiler.BeginSample("EMsg.View_Model_Build"); Entity.SendMsg(EMsg.View_Model_Build, monoModelCtrlr.gameObject, biologyViewRoot); Profiler.EndSample(); yield return(0); } if (null == biologyViewRoot) { yield break; } if (null == Entity) { yield break; } Profiler.BeginSample("EMsg.View_Prefab_Build"); Entity.SendMsg(EMsg.View_Prefab_Build, this, biologyViewRoot); Profiler.EndSample(); yield return(0); if (null == biologyViewRoot) { yield break; } //biologyViewRoot.gameObject.SetActive (true); biologyViewRoot.StartCoroutine(FadeInDelay(0.01f, 3.0f)); // Note: prev version use this Monobehavior(NOT ROOT) to start Coroutine }
public void OnMsg(EMsg msg, params object[] args) { switch (msg) { case EMsg.Skill_CheckLoop: SkFuncInOutPara funcInOut = args[0] as SkFuncInOutPara; if (null != funcInOut) { if (null != funcInOut._para) { string param = funcInOut._para as string; if (null != param && param == "SwordAttack") { if (null != m_TwoHandWeaponAttack.sword) { funcInOut._ret = m_TwoHandWeaponAttack.CheckContinueAttack(); } else if (null != m_SwordAttack.sword) { funcInOut._ret = m_SwordAttack.CheckContinueAttack(); } } } } break; case EMsg.View_Prefab_Build: BiologyViewCmpt obj = args[0] as BiologyViewCmpt; HumanPhyCtrl phyCtrl = obj.monoPhyCtrl; m_SwordAttack.phyMotor = phyCtrl; m_TwoHandWeaponAttack.phyMotor = phyCtrl; m_JetPackAction.m_PhyCtrl = phyCtrl; m_ParachuteAction.m_PhyCtrl = phyCtrl; m_GliderAction.m_PhyCtrl = phyCtrl; m_HeavyEquipmentCtrl.phyCtrl = phyCtrl; m_RopeGunAction.phyCtrl = phyCtrl; m_IKAimCtrl = obj.monoIKAimCtrl; m_GunFire.ikAim = m_IKAimCtrl; m_BowShoot.ikAim = m_IKAimCtrl; CheckGloves(); Invoke("ResetWeapon", 0.5f); break; case EMsg.View_Prefab_Destroy: DeletGloves(); break; case EMsg.Battle_OnShoot: if (null != m_Gun) { m_GunHold.OnFire(); } if (null != m_Bow) { m_BowHold.OnFire(); } break; case EMsg.View_FirstPerson: m_SwordAttack.firstPersonAttack = (bool)args[0]; m_TwoHandWeaponAttack.firstPersonAttack = (bool)args[0]; break; } }