public override void OnAssetLoad(GameObject gameObject) { base.OnAssetLoad(gameObject); if (gameObject) { var time = param as EntityParamEffectTime; var bone = false; var on = GetAgent(); var entity = on as BattleEntity; if (entity != null) { if (entity.TryGetComponent(out EntityComponentModel model)) { UpdateParticleSystemSpeed(model.animationSpeed); if (time.bone != BonePoint.None && model.gameObject != null) { BoneObject point = BoneObject.GetBone(model.gameObject.transform, time.bone); if (point != null) { if (time.bind) { gameObject.transform.SetParent(point.transform); gameObject.transform.localScale = Vector3.one; gameObject.transform.localPosition = Vector3.zero; gameObject.transform.localRotation = Quaternion.identity; } else { gameObject.transform.localPosition = point.transform.position; gameObject.transform.localRotation = point.transform.rotation; } bone = true; } } } } if (bone == false) { if (on != null) { gameObject.transform.position = on.position; gameObject.transform.rotation = on.rotation; } else { OnEnd(); } } } }