// Control Function ----------------------------------------------------------------- void CreateAttachPrefab(Vector3 position, float size) { if (m_AttachPrefab == null) { return; } GameObject createGameObject = (GameObject)CreateGameObject(m_AttachPrefab, m_AttachPrefab.transform.position + position, m_AttachPrefab.transform.rotation); if (createGameObject == null) { return; } // Change Parent ChangeParent(GetRootInstanceEffect().transform, createGameObject.transform, false, null); NcTransformTool.CopyLossyToLocalScale(createGameObject.transform.lossyScale * size, createGameObject.transform); // PrefabAdjustSpeed AdjustSpeedRuntime(createGameObject, m_fPrefabSpeed); // m_fPrefabLifeTime if (0 < m_fPrefabLifeTime) { NcAutoDestruct ncAd = createGameObject.GetComponent <NcAutoDestruct>(); if (ncAd == null) { ncAd = createGameObject.AddComponent <NcAutoDestruct>(); } ncAd.m_fLifeTime = m_fPrefabLifeTime; } }
void CreateCloneObject() { if (m_ClonObject == null) { return; } GameObject createObj; if (transform.parent == null) { createObj = (GameObject)CreateGameObject(gameObject); } else { createObj = (GameObject)CreateGameObject(transform.parent.gameObject, m_ClonObject); } #if (!UNITY_3_5) SetActiveRecursively(createObj, true); #endif try { // m_fDuplicateLifeTime if (0 < m_fDuplicateLifeTime) { NcAutoDestruct ncAd = createObj.GetComponent <NcAutoDestruct>(); if (ncAd == null) { ncAd = createObj.AddComponent <NcAutoDestruct>(); } ncAd.m_fLifeTime = m_fDuplicateLifeTime; } // Random pos Vector3 newPos = createObj.transform.position; createObj.transform.position = new Vector3(Random.Range(-m_RandomRange.x, m_RandomRange.x) + newPos.x, Random.Range(-m_RandomRange.y, m_RandomRange.y) + newPos.y, Random.Range(-m_RandomRange.z, m_RandomRange.z) + newPos.z); // AddStartPos createObj.transform.position += m_AddStartPos; // m_AccumStartRot createObj.transform.localRotation *= Quaternion.Euler(m_AccumStartRot.x * m_nCreateCount, m_AccumStartRot.y * m_nCreateCount, m_AccumStartRot.z * m_nCreateCount); createObj.name += " " + m_nCreateCount; m_nCreateCount++; if (m_bInvoke) { if (m_nDuplicateCount <= m_nCreateCount) { CancelInvoke("CreateCloneObject"); } } } catch (Exception) { } }
public void Awake() { // 如果是飞行特效, 不让特效自行销毁 NcAutoDestruct des = GetComponent <NcAutoDestruct>(); if (null != des) { des.enabled = false; } }
void CreateAttachGameObject() { m_CreateGameObject = (GameObject)CreateGameObject(GetTargetGameObject(), (GetTargetGameObject() == gameObject ? null : transform), m_AttachPrefab); if (m_CreateGameObject == null) { return; } // sync Layer // Ng_ChangeLayerWithChild(m_CreateGameObject, gameObject.layer); // Random pos, AddStartPos Vector3 newPos = m_CreateGameObject.transform.position; m_CreateGameObject.transform.position = m_AddStartPos + new Vector3(Random.Range(-m_RandomRange.x, m_RandomRange.x) + newPos.x, Random.Range(-m_RandomRange.y, m_RandomRange.y) + newPos.y, Random.Range(-m_RandomRange.z, m_RandomRange.z) + newPos.z); // m_AccumStartRot m_CreateGameObject.transform.localRotation *= Quaternion.Euler(m_AccumStartRot.x * m_nCreateCount, m_AccumStartRot.y * m_nCreateCount, m_AccumStartRot.z * m_nCreateCount); m_CreateGameObject.name += " " + m_nCreateCount; SetActiveRecursively(m_CreateGameObject, true); // PrefabAdjustSpeed AdjustSpeedRuntime(m_CreateGameObject, m_fPrefabSpeed); // m_fPrefabLifeTime if (0 < m_fPrefabLifeTime) { NcAutoDestruct ncAd = m_CreateGameObject.GetComponent <NcAutoDestruct>(); if (ncAd == null) { ncAd = m_CreateGameObject.AddComponent <NcAutoDestruct>(); } ncAd.m_fLifeTime = m_fPrefabLifeTime; } // m_bDetachParent if (m_bDetachParent) { NcDetachParent detachCom = m_CreateGameObject.GetComponent <NcDetachParent>(); if (detachCom == null) { detachCom = m_CreateGameObject.AddComponent <NcDetachParent>(); } } // m_nSpriteFactoryIndex if (0 <= m_nSpriteFactoryIndex) { NcSpriteFactory ncFactory = m_CreateGameObject.GetComponent <NcSpriteFactory>(); if (ncFactory) { ncFactory.SetSprite(m_nSpriteFactoryIndex, false); } } }
// Control Function ----------------------------------------------------------------- void CreateAttachPrefab() { m_nCreateCount++; m_CreateGameObject = (GameObject)CreateGameObject(GetTargetGameObject(), (GetTargetGameObject() == gameObject ? null : transform), m_AttachPrefab); if (m_CreateGameObject == null) { return; } // sync Layer // Ng_ChangeLayerWithChild(m_CreateGameObject, gameObject.layer); // Random pos Vector3 newPos = m_CreateGameObject.transform.position; m_CreateGameObject.transform.position = new Vector3(Random.Range(-m_RandomRange.x, m_RandomRange.x) + newPos.x, Random.Range(-m_RandomRange.y, m_RandomRange.y) + newPos.y, Random.Range(-m_RandomRange.z, m_RandomRange.z) + newPos.z); // AddStartPos m_CreateGameObject.transform.position += m_AddStartPos; // m_AccumStartRot m_CreateGameObject.transform.localRotation *= Quaternion.Euler(m_AccumStartRot.x * m_nCreateCount, m_AccumStartRot.y * m_nCreateCount, m_AccumStartRot.z * m_nCreateCount); m_CreateGameObject.name += " " + m_nCreateCount; NgObject.SetActiveRecursively(m_CreateGameObject, true); // PrefabAdjustSpeed AdjustSpeedRuntime(m_CreateGameObject, m_fPrefabSpeed); // m_fPrefabLifeTime if (0 < m_fPrefabLifeTime) { NcAutoDestruct ncAd = m_CreateGameObject.GetComponent <NcAutoDestruct>(); if (ncAd == null) { ncAd = m_CreateGameObject.AddComponent <NcAutoDestruct>(); } ncAd.m_fLifeTime = m_fPrefabLifeTime; } // m_bDetachParent if (m_bDetachParent) { NcDetachParent detachCom = m_CreateGameObject.GetComponent <NcDetachParent>(); if (detachCom == null) { detachCom = m_CreateGameObject.AddComponent <NcDetachParent>(); } } if ((0 == m_fRepeatTime || m_AttachType == AttachType.Destroy) && 0 < m_nRepeatCount && m_nCreateCount < m_nRepeatCount) { CreateAttachPrefab(); } }
public static NcAutoDestruct CreateAutoDestruct(GameObject baseGameObject, float fLifeTime, float fDestroyTime, bool bSmoothHide) { NcAutoDestruct ncAutoDestruct = baseGameObject.AddComponent <NcAutoDestruct>(); ncAutoDestruct.m_fLifeTime = fLifeTime; ncAutoDestruct.m_fSmoothDestroyTime = fDestroyTime; ncAutoDestruct.m_bSmoothHide = bSmoothHide; if (NcEffectBehaviour.IsActive(baseGameObject)) { ncAutoDestruct.Start(); ncAutoDestruct.Update(); } return(ncAutoDestruct); }
private void CreateAttachPrefab() { this.m_nCreateCount++; this.m_CreateGameObject = base.CreateGameObject(this.GetTargetGameObject(), (!(this.GetTargetGameObject() == base.get_gameObject())) ? base.get_transform() : null, this.m_AttachPrefab); if (this.m_CreateGameObject == null) { return; } Vector3 position = this.m_CreateGameObject.get_transform().get_position(); this.m_CreateGameObject.get_transform().set_position(new Vector3(Random.Range(-this.m_RandomRange.x, this.m_RandomRange.x) + position.x, Random.Range(-this.m_RandomRange.y, this.m_RandomRange.y) + position.y, Random.Range(-this.m_RandomRange.z, this.m_RandomRange.z) + position.z)); Transform expr_F7 = this.m_CreateGameObject.get_transform(); expr_F7.set_position(expr_F7.get_position() + this.m_AddStartPos); Transform expr_118 = this.m_CreateGameObject.get_transform(); expr_118.set_localRotation(expr_118.get_localRotation() * Quaternion.Euler(this.m_AccumStartRot.x * (float)this.m_nCreateCount, this.m_AccumStartRot.y * (float)this.m_nCreateCount, this.m_AccumStartRot.z * (float)this.m_nCreateCount)); GameObject expr_16C = this.m_CreateGameObject; expr_16C.set_name(expr_16C.get_name() + " " + this.m_nCreateCount); NcEffectBehaviour.SetActiveRecursively(this.m_CreateGameObject, true); NcEffectBehaviour.AdjustSpeedRuntime(this.m_CreateGameObject, this.m_fPrefabSpeed); if (0f < this.m_fPrefabLifeTime) { NcAutoDestruct ncAutoDestruct = this.m_CreateGameObject.GetComponent <NcAutoDestruct>(); if (ncAutoDestruct == null) { ncAutoDestruct = this.m_CreateGameObject.AddComponent <NcAutoDestruct>(); } ncAutoDestruct.m_fLifeTime = this.m_fPrefabLifeTime; } if (this.m_bDetachParent) { NcDetachParent ncDetachParent = this.m_CreateGameObject.GetComponent <NcDetachParent>(); if (ncDetachParent == null) { ncDetachParent = this.m_CreateGameObject.AddComponent <NcDetachParent>(); } } if ((this.m_fRepeatTime == 0f || this.m_AttachType == NcAttachPrefab.AttachType.Destroy) && 0 < this.m_nRepeatCount && this.m_nCreateCount < this.m_nRepeatCount) { this.CreateAttachPrefab(); } }
private void CreateCloneObject() { if (this.m_ClonObject == null) { return; } GameObject gameObject; if (base.get_transform().get_parent() == null) { gameObject = base.CreateGameObject(base.get_gameObject()); } else { gameObject = base.CreateGameObject(base.get_transform().get_parent().get_gameObject(), this.m_ClonObject); } if (0f < this.m_fDuplicateLifeTime) { NcAutoDestruct ncAutoDestruct = gameObject.GetComponent <NcAutoDestruct>(); if (ncAutoDestruct == null) { ncAutoDestruct = gameObject.AddComponent <NcAutoDestruct>(); } ncAutoDestruct.m_fLifeTime = this.m_fDuplicateLifeTime; } Vector3 position = gameObject.get_transform().get_position(); gameObject.get_transform().set_position(new Vector3(Random.Range(-this.m_RandomRange.x, this.m_RandomRange.x) + position.x, Random.Range(-this.m_RandomRange.y, this.m_RandomRange.y) + position.y, Random.Range(-this.m_RandomRange.z, this.m_RandomRange.z) + position.z)); Transform expr_11B = gameObject.get_transform(); expr_11B.set_position(expr_11B.get_position() + this.m_AddStartPos); Transform expr_137 = gameObject.get_transform(); expr_137.set_localRotation(expr_137.get_localRotation() * Quaternion.Euler(this.m_AccumStartRot.x * (float)this.m_nCreateCount, this.m_AccumStartRot.y * (float)this.m_nCreateCount, this.m_AccumStartRot.z * (float)this.m_nCreateCount)); GameObject expr_186 = gameObject; expr_186.set_name(expr_186.get_name() + " " + this.m_nCreateCount); this.m_nCreateCount++; if (this.m_bInvoke && this.m_nDuplicateCount <= this.m_nCreateCount) { base.CancelInvoke("CreateCloneObject"); } }
private void CreateCloneObject() { if (this.m_ClonObject == null) { return; } GameObject gameObject; if (base.transform.parent == null) { gameObject = base.CreateGameObject(base.gameObject); } else { gameObject = base.CreateGameObject(base.transform.parent.gameObject, this.m_ClonObject); } NcEffectBehaviour.SetActiveRecursively(gameObject, true); if (0f < this.m_fDuplicateLifeTime) { NcAutoDestruct ncAutoDestruct = gameObject.GetComponent <NcAutoDestruct>(); if (ncAutoDestruct == null) { ncAutoDestruct = gameObject.AddComponent <NcAutoDestruct>(); } ncAutoDestruct.m_fLifeTime = this.m_fDuplicateLifeTime; } Vector3 position = gameObject.transform.position; gameObject.transform.position = new Vector3(UnityEngine.Random.Range(-this.m_RandomRange.x, this.m_RandomRange.x) + position.x, UnityEngine.Random.Range(-this.m_RandomRange.y, this.m_RandomRange.y) + position.y, UnityEngine.Random.Range(-this.m_RandomRange.z, this.m_RandomRange.z) + position.z); gameObject.transform.position += this.m_AddStartPos; gameObject.transform.localRotation *= Quaternion.Euler(this.m_AccumStartRot.x * (float)this.m_nCreateCount, this.m_AccumStartRot.y * (float)this.m_nCreateCount, this.m_AccumStartRot.z * (float)this.m_nCreateCount); GameObject expr_18D = gameObject; expr_18D.name = expr_18D.name + " " + this.m_nCreateCount; this.m_nCreateCount++; if (this.m_bInvoke && this.m_nDuplicateCount <= this.m_nCreateCount) { base.CancelInvoke("CreateCloneObject"); } }
private void CreateAttachPrefab() { this.m_nCreateCount++; this.m_CreateGameObject = base.CreateGameObject(this.GetTargetGameObject(), (!(this.GetTargetGameObject() == base.gameObject)) ? base.transform : null, this.m_AttachPrefab); if (this.m_CreateGameObject == null) { return; } Vector3 position = this.m_CreateGameObject.transform.position; this.m_CreateGameObject.transform.position = new Vector3(UnityEngine.Random.Range(-this.m_RandomRange.x, this.m_RandomRange.x) + position.x, UnityEngine.Random.Range(-this.m_RandomRange.y, this.m_RandomRange.y) + position.y, UnityEngine.Random.Range(-this.m_RandomRange.z, this.m_RandomRange.z) + position.z); this.m_CreateGameObject.transform.position += this.m_AddStartPos; this.m_CreateGameObject.transform.localRotation *= Quaternion.Euler(this.m_AccumStartRot.x * (float)this.m_nCreateCount, this.m_AccumStartRot.y * (float)this.m_nCreateCount, this.m_AccumStartRot.z * (float)this.m_nCreateCount); GameObject expr_16C = this.m_CreateGameObject; expr_16C.name = expr_16C.name + " " + this.m_nCreateCount; NcEffectBehaviour.SetActiveRecursively(this.m_CreateGameObject, true); NcEffectBehaviour.AdjustSpeedRuntime(this.m_CreateGameObject, this.m_fPrefabSpeed); if (0f < this.m_fPrefabLifeTime) { NcAutoDestruct ncAutoDestruct = this.m_CreateGameObject.GetComponent <NcAutoDestruct>(); if (ncAutoDestruct == null) { ncAutoDestruct = this.m_CreateGameObject.AddComponent <NcAutoDestruct>(); } ncAutoDestruct.m_fLifeTime = this.m_fPrefabLifeTime; } if (this.m_bDetachParent) { NcDetachParent x = this.m_CreateGameObject.GetComponent <NcDetachParent>(); if (x == null) { x = this.m_CreateGameObject.AddComponent <NcDetachParent>(); } } if ((this.m_fRepeatTime == 0f || this.m_AttachType == NcAttachPrefab.AttachType.Destroy) && 0 < this.m_nRepeatCount && this.m_nCreateCount < this.m_nRepeatCount) { this.CreateAttachPrefab(); } }
void CreateCloneObject() { if (m_ClonObject == null) { return; } GameObject createObj; if (transform.parent == null) { createObj = (GameObject)CreateGameObject(gameObject); } else { createObj = (GameObject)CreateGameObject(transform.parent.gameObject, m_ClonObject); } #if UNITY_EDITOR RenderHelper.RefreshShader(createObj); // BattleManager.setTrueShaderToGameObject(createObj, ShaderCollection.shadersLink); #endif #if (UNITY_4_0 || UNITY_4_1 || UNITY_4_2 || UNITY_4_3 || UNITY_4_4 || UNITY_4_5 || UNITY_4_6 || UNITY_4_7 || UNITY_4_8 || UNITY_4_9) SetActiveRecursively(createObj, true); #endif if (_eod != null) { _eod.cloneObjectList.Add(createObj); } // m_fDuplicateLifeTime if (0 < m_fDuplicateLifeTime) { NcAutoDestruct ncAd = createObj.GetComponent <NcAutoDestruct>(); if (ncAd == null) { ncAd = createObj.AddComponent <NcAutoDestruct>(); } ncAd.m_fLifeTime = m_fDuplicateLifeTime; } NcEffectBehaviour[] behaviourList = createObj.GetComponentsInChildren <NcEffectBehaviour>(); for (int i = 0; i < behaviourList.Length; i++) { behaviourList[i].isReuse = false; } // Random pos Vector3 newPos = createObj.transform.position; createObj.transform.position = new Vector3(Random.Range(-m_RandomRange.x, m_RandomRange.x) + newPos.x, Random.Range(-m_RandomRange.y, m_RandomRange.y) + newPos.y, Random.Range(-m_RandomRange.z, m_RandomRange.z) + newPos.z); // AddStartPos createObj.transform.position += m_AddStartPos; // m_AccumStartRot createObj.transform.localRotation *= Quaternion.Euler(m_AccumStartRot.x * m_nCreateCount, m_AccumStartRot.y * m_nCreateCount, m_AccumStartRot.z * m_nCreateCount); createObj.name = m_ClonObject.name + " " + m_nCreateCount; if (_eod != null) { _eod.addDynamicEffectObject(createObj); } m_nCreateCount++; if (m_bInvoke) { if (m_nDuplicateCount <= m_nCreateCount) { CancelInvoke("CreateCloneObject"); } } }
// Property ------------------------------------------------------------------------- // Event Function ------------------------------------------------------------------- void OnEnable() { m_Sel = target as NcAutoDestruct; m_UndoManager = new FXMakerUndoManager(m_Sel, "NcAutoDestruct"); }
void CreateAttachGameObject() { GameObject createObj = (GameObject)CreateGameObject(GetTargetGameObject(), (GetTargetGameObject() == gameObject ? null : transform), m_AttachPrefab); if (m_bReplayState) { NsEffectManager.SetReplayEffect(createObj); } if (createObj == null) { return; } if (m_AttachType == AttachType.Active) { if (m_CreateGameObjects == null) { m_CreateGameObjects = new GameObject[Mathf.Max(1, m_nRepeatCount)]; } for (int n = 0; n < m_CreateGameObjects.Length; n++) { if (m_CreateGameObjects[n] == null) { m_CreateGameObjects[n] = createObj; break; } } } m_nCreateCount++; // sync Layer // Ng_ChangeLayerWithChild(createObj, gameObject.layer); // Random pos, AddStartPos Vector3 newPos = createObj.transform.position; createObj.transform.position = m_AddStartPos + new Vector3(Random.Range(-m_RandomRange.x, m_RandomRange.x) + newPos.x, Random.Range(-m_RandomRange.y, m_RandomRange.y) + newPos.y, Random.Range(-m_RandomRange.z, m_RandomRange.z) + newPos.z); // m_AccumStartRot createObj.transform.localRotation *= Quaternion.Euler(m_AccumStartRot.x * m_nCreateCount, m_AccumStartRot.y * m_nCreateCount, m_AccumStartRot.z * m_nCreateCount); createObj.name += " " + m_nCreateCount; SetActiveRecursively(createObj, true); // PrefabAdjustSpeed NsEffectManager.AdjustSpeedRuntime(createObj, m_fPrefabSpeed); // m_fPrefabLifeTime if (0 < m_fPrefabLifeTime) { NcAutoDestruct ncAd = createObj.GetComponent <NcAutoDestruct>(); if (ncAd == null) { ncAd = AddNcComponentToObject <NcAutoDestruct>(createObj); } ncAd.m_fLifeTime = m_fPrefabLifeTime; } // m_bDetachParent if (m_bDetachParent) { NcDetachParent detachCom = createObj.GetComponent <NcDetachParent>(); if (detachCom == null) { detachCom = AddNcComponentToObject <NcDetachParent>(createObj); } } // m_nSpriteFactoryIndex if (0 <= m_nSpriteFactoryIndex) { NcSpriteFactory ncFactory = createObj.GetComponent <NcSpriteFactory>(); if (ncFactory) { ncFactory.SetSprite(m_nSpriteFactoryIndex, false); } } OnCreateAttachGameObject(); }
private void CreateAttachGameObject() { GameObject gameObject = base.CreateGameObject(this.GetTargetGameObject(), (!(this.GetTargetGameObject() == base.gameObject)) ? base.transform : null, this.m_AttachPrefab); if (this.m_bReplayState) { NsEffectManager.SetReplayEffect(gameObject); } if (gameObject == null) { return; } if (this.m_AttachType == NcAttachPrefab.AttachType.Active) { if (this.m_CreateGameObjects == null) { this.m_CreateGameObjects = new GameObject[Mathf.Max(1, this.m_nRepeatCount)]; } for (int i = 0; i < this.m_CreateGameObjects.Length; i++) { if (this.m_CreateGameObjects[i] == null) { this.m_CreateGameObjects[i] = gameObject; break; } } } this.m_nCreateCount++; Vector3 position = gameObject.transform.position; gameObject.transform.position = this.m_AddStartPos + new Vector3(UnityEngine.Random.Range(-this.m_RandomRange.x, this.m_RandomRange.x) + position.x, UnityEngine.Random.Range(-this.m_RandomRange.y, this.m_RandomRange.y) + position.y, UnityEngine.Random.Range(-this.m_RandomRange.z, this.m_RandomRange.z) + position.z); gameObject.transform.localRotation *= Quaternion.Euler(this.m_AccumStartRot.x * (float)this.m_nCreateCount, this.m_AccumStartRot.y * (float)this.m_nCreateCount, this.m_AccumStartRot.z * (float)this.m_nCreateCount); GameObject expr_1B0 = gameObject; expr_1B0.name = expr_1B0.name + " " + this.m_nCreateCount; NcEffectBehaviour.SetActiveRecursively(gameObject, true); NsEffectManager.AdjustSpeedRuntime(gameObject, this.m_fPrefabSpeed); if (0f < this.m_fPrefabLifeTime) { NcAutoDestruct ncAutoDestruct = gameObject.GetComponent <NcAutoDestruct>(); if (ncAutoDestruct == null) { ncAutoDestruct = base.AddNcComponentToObject <NcAutoDestruct>(gameObject); } ncAutoDestruct.m_fLifeTime = this.m_fPrefabLifeTime; } if (this.m_bDetachParent) { NcDetachParent x = gameObject.GetComponent <NcDetachParent>(); if (x == null) { x = base.AddNcComponentToObject <NcDetachParent>(gameObject); } } if (0 <= this.m_nSpriteFactoryIndex) { NcSpriteFactory component = gameObject.GetComponent <NcSpriteFactory>(); if (component) { component.SetSprite(this.m_nSpriteFactoryIndex, false); } } this.OnCreateAttachGameObject(); }