public void Active(SceneObject_BaseInfo info) { m_BulletInfo = (SceneObject_TerminalBulletInfo)info; StartMove(); StopMove(); ProcessImpact(); }
public SceneObject_TerminalBulletInfo Clone() { SceneObject_TerminalBulletInfo newData = new SceneObject_TerminalBulletInfo(); newData.Id = Id; newData.Attacker = Attacker; newData.SceneObjInfo = SceneObjInfo.Clone(); newData.BulletHitEffectInfo = BulletHitEffectInfo.Clone(); newData.BulletEndEffectInfo = BulletEndEffectInfo.Clone(); newData.MoveStartPos = MoveStartPos; newData.MoveDir = MoveDir; newData.MoveDistanceMax = MoveDistanceMax; newData.ImpactInfos = ImpactInfos.Clone(); newData.ExceptTargetState = new List <TargetStateType>(ExceptTargetState); newData.ImpactSrcPos = ImpactSrcPos; newData.Target = Target; return(newData); }
/// param:Id[对应到SkillSceneObjManager中的TerminalBullet Id] /// example:1 public void Trigger_TerminalShoot(string param) { #if SHOOTER_LOG Debug.Log("Trigger_TerminalShoot param:" + param); #endif if (m_SceneObjMgr != null) { SkillSceneObjInfo sobjInfo = new SkillSceneObjInfo(param); SceneObject_TerminalBulletInfo bulletInfo = m_SceneObjMgr.TryGetTerminalBulletInfo(sobjInfo.Id); MasterWeaponType masterType = (MasterWeaponType)(sobjInfo.ExtractNumeric <int>(0, 0)); GameObject curMainWeapon = TriggerImpl.GetCurMainWeapon(this.gameObject, masterType); if (bulletInfo != null && bulletInfo.SceneObjInfo != null && curMainWeapon != null) { Transform efSpark = LogicSystem.FindChildRecursive(curMainWeapon.transform, Script_Util.ForceNotifyEffectBone(bulletInfo.SceneObjInfo.EffectParentBone)); if (null == efSpark) { Debug.Log("Trigger_Shoot bone miss!"); return; } bulletInfo = bulletInfo.Clone(); bulletInfo.Attacker = this.gameObject; bulletInfo.SceneObjInfo.EffectPos += efSpark.transform.position; bulletInfo.MoveStartPos += efSpark.transform.position; bulletInfo.MoveDir = Quaternion.Euler(efSpark.transform.rotation.eulerAngles + bulletInfo.MoveDir) * Vector3.forward; bulletInfo.ImpactSrcPos += new Vector3(gameObject.transform.position.x, efSpark.transform.position.y, gameObject.transform.position.z); GameObject tBulletObj = TriggerImpl.PlayEffect(bulletInfo.SceneObjInfo); tBulletObj.SendMessage("Active", bulletInfo); } else { Debug.Log("Trigger_TerminalShoot null!"); } } }