// 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_B.CopyLossyToLocalScale(createGameObject.transform.lossyScale * size, createGameObject.transform); // PrefabAdjustSpeed AdjustSpeedRuntime(createGameObject, m_fPrefabSpeed); // m_fPrefabLifeTime if (0 < m_fPrefabLifeTime) { NcAutoDestruct_B ncAd = createGameObject.GetComponent <NcAutoDestruct_B>(); if (ncAd == null) { ncAd = createGameObject.AddComponent <NcAutoDestruct_B>(); } ncAd.m_fLifeTime = m_fPrefabLifeTime; } }
// 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; SetActiveRecursively(m_CreateGameObject, true); // PrefabAdjustSpeed AdjustSpeedRuntime(m_CreateGameObject, m_fPrefabSpeed); // m_fPrefabLifeTime if (0 < m_fPrefabLifeTime) { NcAutoDestruct_B ncAd = m_CreateGameObject.GetComponent <NcAutoDestruct_B>(); if (ncAd == null) { ncAd = m_CreateGameObject.AddComponent <NcAutoDestruct_B>(); } ncAd.m_fLifeTime = m_fPrefabLifeTime; } // m_bDetachParent if (m_bDetachParent) { NcDetachParent_B detachCom = m_CreateGameObject.GetComponent <NcDetachParent_B>(); if (detachCom == null) { detachCom = m_CreateGameObject.AddComponent <NcDetachParent_B>(); } } if ((0 == m_fRepeatTime || m_AttachType == AttachType.Destroy) && 0 < m_nRepeatCount && m_nCreateCount < m_nRepeatCount) { 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_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 // m_fDuplicateLifeTime if (0 < m_fDuplicateLifeTime) { NcAutoDestruct_B ncAd = createObj.GetComponent <NcAutoDestruct_B>(); if (ncAd == null) { ncAd = createObj.AddComponent <NcAutoDestruct_B>(); } 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"); } } }
// Create --------------------------------------------------------------------------- public static NcAutoDestruct_B CreateAutoDestruct(GameObject baseGameObject, float fLifeTime, float fDestroyTime, bool bSmoothHide) { NcAutoDestruct_B ncAutoDestruct = baseGameObject.AddComponent <NcAutoDestruct_B>(); ncAutoDestruct.m_fLifeTime = fLifeTime; ncAutoDestruct.m_fSmoothDestroyTime = fDestroyTime; ncAutoDestruct.m_bSmoothHide = bSmoothHide; if (IsActive(baseGameObject)) { ncAutoDestruct.Start(); ncAutoDestruct.Update(); } return(ncAutoDestruct); }