Ejemplo n.º 1
0
    // 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;
        }
    }
Ejemplo n.º 2
0
    // 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();
        }
    }
Ejemplo n.º 3
0
    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");
            }
        }
    }
Ejemplo n.º 4
0
    // 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);
    }