protected void RunActionControl(int nPlayIndex, int nTransIndex) { NgUtil.LogDevelop("RunActionControl() - nPlayIndex " + nPlayIndex); CancelInvoke("CreateInstanceEffect"); m_bCalledDelayCreate = false; // チ、チ?オネ ステー霏マ ー豼?ソ?チ?タフオオキマ ヌリオホタレ... ResumeTimeScale(); // Play --------------------------------------- m_bStartAliveAnimation = false; switch (nPlayIndex) { /*AutoRet*/ case 0: break; case 1: break; /*OneShot*/ case 2: SetTimeScale(m_fPlayToolbarTimes[nPlayIndex]); break; /*Repeat*/ case m_nRepeatIndex: case m_nRepeatIndex + 1: case m_nRepeatIndex + 2: case m_nRepeatIndex + 3: case m_nRepeatIndex + 4: { // repeatシアナテタフク?. タフオソー?キテ ソノシヌタサ イ?エル. if (nPlayIndex != m_nPlayIndex) { nTransIndex = 0; } break; } } // Trans --------------------------------------- if (0 < nTransIndex) { // init multishot // if (m_nTransIndex != nTransIndex && (m_nTransIndex != 0 && nTransIndex != 0)) // m_nMultiShotCount = 1; // 2016.10.07 長坂 メインカメラ固定になってうため、変更できるように修正. #if __DRECOM_ float fTransHalfDist = (NcUtility.Camera != null ? (Vector3.Magnitude(NcUtility.Camera.transform.position) * 0.65f) : 1) * m_fTransRate; #else float fTransHalfDist = (Camera.main != null ? (Vector3.Magnitude(Camera.main.transform.position) * 0.65f) : 1) * m_fTransRate; #endif GameObject instEffectObject = FXMakerMain.inst.GetInstanceEffectObject(); GameObject simRoot = NgObject.CreateGameObject(instEffectObject.transform.parent.gameObject, "simulate"); FXMakerSimulate simComponent = simRoot.AddComponent <FXMakerSimulate>(); instEffectObject.transform.parent = simRoot.transform; FXMakerMain.inst.ChangeRoot_InstanceEffectObject(simRoot); simComponent.Init(this, m_nMultiShotCount); switch (nTransIndex) { case 1: // Move { simComponent.SimulateMove(m_nTransAxis, fTransHalfDist, FXMakerOption.inst.m_fScaleTransSpeed * m_fDistPerTime, (m_nRotateIndex == 0)); break; } case 2: // scale { simComponent.SimulateScale(m_nTransAxis, fTransHalfDist * 0.3f, FXMakerOption.inst.m_fScaleTransSpeed * m_fDistPerTime, (m_nRotateIndex == 0)); break; } case 3: // Arc { simComponent.SimulateArc(fTransHalfDist * 0.7f, FXMakerOption.inst.m_fScaleTransSpeed * m_fDistPerTime, (m_nRotateIndex == 0)); break; } case 4: // fall { simComponent.SimulateFall(fTransHalfDist * 0.7f, FXMakerOption.inst.m_fScaleTransSpeed * m_fDistPerTime, (m_nRotateIndex == 0)); break; } case 5: // raise { simComponent.SimulateRaise(fTransHalfDist * 0.7f, FXMakerOption.inst.m_fScaleTransSpeed * m_fDistPerTime, (m_nRotateIndex == 0)); break; } case 6: // circle { simComponent.SimulateCircle(fTransHalfDist * 0.5f, FXMakerOption.inst.m_fScaleTransSpeed * m_fDistPerTime, (m_nRotateIndex == 0)); break; } case 7: // tornado { simComponent.SimulateTornado(fTransHalfDist * 0.3f, fTransHalfDist * 0.7f, FXMakerOption.inst.m_fScaleTransSpeed * m_fDistPerTime, (m_nRotateIndex == 0)); break; } } } // タフオソテウクョチ゚タフク?.. タレオソケンコケオヌケヌキホ ア簔クrepeatソノシヌタコ イ?エル. if (0 < nTransIndex) { if (m_nRepeatIndex <= nPlayIndex) { nPlayIndex = 0; } } // テヨチキ ー眞、ーェ タ?タ? m_nPlayIndex = nPlayIndex; m_nTransIndex = nTransIndex; if (IsRepeat()) { m_fCreateTime = Time.time; } }
protected void RunActionControl(int nPlayIndex, int nTransIndex) { NgUtil.LogDevelop("RunActionControl() - nPlayIndex " + nPlayIndex); CancelInvoke("CreateInstanceEffect"); m_bCalledDelayCreate = false; // 정지된 시계일 경우 움직이도록 해두자... ResumeTimeScale(); // Play --------------------------------------- m_bStartAliveAnimation = false; switch (nPlayIndex) { /*AutoRet*/ case 0: break; case 1: break; /*OneShot*/ case 2: SetTimeScale(m_fPlayToolbarTimes[nPlayIndex]); break; /*Repeat*/ case m_nRepeatIndex: case m_nRepeatIndex + 1: case m_nRepeatIndex + 2: case m_nRepeatIndex + 3: case m_nRepeatIndex + 4: { // repeat선택이면.. 이동관련 옵션을 끈다. if (nPlayIndex != m_nPlayIndex) { nTransIndex = 0; } break; } } // Trans --------------------------------------- if (0 < nTransIndex) { // init multishot // if (m_nTransIndex != nTransIndex && (m_nTransIndex != 0 && nTransIndex != 0)) // m_nMultiShotCount = 1; float fTransHalfDist = (Camera.main != null ? (Vector3.Magnitude(Camera.main.transform.position) * 0.65f) : 1) * m_fTransRate; GameObject instEffectObject = FXMakerMain.inst.GetInstanceEffectObject(); GameObject simRoot = NgObject.CreateGameObject(instEffectObject.transform.parent.gameObject, "simulate"); FXMakerSimulate simComponent = simRoot.AddComponent <FXMakerSimulate>(); instEffectObject.transform.parent = simRoot.transform; FXMakerMain.inst.ChangeRoot_InstanceEffectObject(simRoot); simComponent.Init(this, m_nMultiShotCount); switch (nTransIndex) { case 1: // Move { simComponent.SimulateMove(m_nTransAxis, fTransHalfDist, FXMakerOption.inst.m_fScaleTransSpeed * m_fDistPerTime, (m_nRotateIndex == 0)); break; } case 2: // scale { simComponent.SimulateScale(m_nTransAxis, fTransHalfDist * 0.3f, FXMakerOption.inst.m_fScaleTransSpeed * m_fDistPerTime, (m_nRotateIndex == 0)); break; } case 3: // Arc { simComponent.SimulateArc(fTransHalfDist * 0.7f, FXMakerOption.inst.m_fScaleTransSpeed * m_fDistPerTime, (m_nRotateIndex == 0)); break; } case 4: // fall { simComponent.SimulateFall(fTransHalfDist * 0.7f, FXMakerOption.inst.m_fScaleTransSpeed * m_fDistPerTime, (m_nRotateIndex == 0)); break; } case 5: // raise { simComponent.SimulateRaise(fTransHalfDist * 0.7f, FXMakerOption.inst.m_fScaleTransSpeed * m_fDistPerTime, (m_nRotateIndex == 0)); break; } case 6: // circle { simComponent.SimulateCircle(fTransHalfDist * 0.5f, FXMakerOption.inst.m_fScaleTransSpeed * m_fDistPerTime, (m_nRotateIndex == 0)); break; } case 7: // tornado { simComponent.SimulateTornado(fTransHalfDist * 0.3f, fTransHalfDist * 0.7f, FXMakerOption.inst.m_fScaleTransSpeed * m_fDistPerTime, (m_nRotateIndex == 0)); break; } } } // 이동처리중이면... 자동반복되므로 기존repeat옵션은 끈다. if (0 < nTransIndex) { if (m_nRepeatIndex <= nPlayIndex) { nPlayIndex = 0; } } // 최족 결정값 저장 m_nPlayIndex = nPlayIndex; m_nTransIndex = nTransIndex; if (IsRepeat()) { m_fCreateTime = Time.time; } }
bool IsAliveAnimation() { GameObject rootInstObj = NcEffectBehaviour.GetRootInstanceEffect(); Transform[] tranComs = rootInstObj.GetComponentsInChildren <Transform>(true); foreach (Transform trans in tranComs) { int bNcAni = -1; // -1:None, 0:End, 1:Alive int bParticle = -1; bool bRen = false; // Check Animation NcEffectBehaviour[] effList = trans.GetComponents <NcEffectBehaviour>(); foreach (NcEffectBehaviour eff in effList) { switch (eff.GetAnimationState()) { case 1: bNcAni = 1; break; case 0: bNcAni = 0; break; } } // Check ParticleSystem if (trans.GetComponent <ParticleSystem>() != null) { bParticle = 0; if (NgObject.IsActive(trans.gameObject) && ((trans.GetComponent <ParticleSystem>().emission.enabled&& trans.GetComponent <ParticleSystem>().IsAlive()) || 0 < trans.GetComponent <ParticleSystem>().particleCount)) { bParticle = 1; } } // Check ParticleSystem if (bParticle < 1) { if (trans.GetComponent <ParticleEmitter>() != null) { bParticle = 0; if (NgObject.IsActive(trans.gameObject) && (trans.GetComponent <ParticleEmitter>().emit || 0 < trans.GetComponent <ParticleEmitter>().particleCount)) { bParticle = 1; } } } // Check Renderer if (trans.GetComponent <Renderer>() != null) { if (trans.GetComponent <FXMakerWireframe>() == null && trans.GetComponent <Renderer>().enabled&& NgObject.IsActive(trans.gameObject)) { bRen = true; } } // Debug.Log("bNcAni " + bNcAni + ", bParticle " + bParticle + ", bRen " + bRen); if (0 < bNcAni) { return(true); } if (bParticle == 1) { return(true); } if (bRen && (trans.GetComponent <MeshFilter>() != null || trans.GetComponent <TrailRenderer>() != null || trans.GetComponent <LineRenderer>() != null)) { return(true); } } return(false); }
public static GameObject CreateGameObject(MonoBehaviour parent, GameObject prefabObj) { return(NgObject.CreateGameObject(parent.get_transform(), prefabObj)); }
public static GameObject CreateGameObject(MonoBehaviour parent, GameObject prefabObj, Vector3 pos, Quaternion rot) { return(NgObject.CreateGameObject(parent.get_transform(), prefabObj, pos, rot)); }
public static Component CreateComponent(MonoBehaviour parent, Type type) { return(NgObject.CreateComponent(parent.get_gameObject(), type)); }
public static GameObject CreateGameObject(MonoBehaviour parent, string name) { return(NgObject.CreateGameObject(parent.get_transform(), name)); }
public static GameObject CreateGameObject(GameObject parent, GameObject prefabObj, Vector3 pos, Quaternion rot) { return(NgObject.CreateGameObject(parent.transform, prefabObj, pos, rot)); }
public static Component CreateComponent(Transform parent, Type type) { return(NgObject.CreateComponent(parent.get_gameObject(), type)); }
public static GameObject CreateGameObject(GameObject parent, string name) { return(NgObject.CreateGameObject(parent.transform, name)); }
public static GameObject CreateGameObject(GameObject parent, GameObject prefabObj) { return(NgObject.CreateGameObject(parent.transform, prefabObj)); }
protected void RunActionControl(int nPlayIndex, int nTransIndex) { NgUtil.LogDevelop("RunActionControl() - nPlayIndex " + nPlayIndex); base.CancelInvoke(); this.m_bCalledDelayCreate = false; this.ResumeTimeScale(); this.m_bStartAliveAnimation = false; switch (nPlayIndex) { case 2: this.SetTimeScale(this.m_fPlayToolbarTimes[nPlayIndex]); break; case 3: case 4: case 5: case 6: case 7: if (nPlayIndex != this.m_nPlayIndex) { nTransIndex = 0; } break; } if (0 < nTransIndex) { float num = ((!(Camera.main != null)) ? 1f : (Vector3.Magnitude(Camera.main.transform.position) * 0.8f)) * this.m_fTransRate; GameObject instanceEffectObject = FxmTestMain.inst.GetInstanceEffectObject(); GameObject gameObject = NgObject.CreateGameObject(instanceEffectObject.transform.parent.gameObject, "simulate"); FxmTestSimulate fxmTestSimulate = gameObject.AddComponent <FxmTestSimulate>(); instanceEffectObject.transform.parent = gameObject.transform; FxmTestMain.inst.ChangeRoot_InstanceEffectObject(gameObject); fxmTestSimulate.Init(this, this.m_nMultiShotCount); switch (nTransIndex) { case 1: fxmTestSimulate.SimulateMove(this.m_nTransAxis, num, this.m_fDistPerTime, this.m_nRotateIndex == 0); break; case 2: fxmTestSimulate.SimulateScale(this.m_nTransAxis, num * 0.3f, this.m_fStartPosition, this.m_fDistPerTime, this.m_nRotateIndex == 0); break; case 3: fxmTestSimulate.SimulateArc(num * 0.7f, this.m_fDistPerTime, this.m_nRotateIndex == 0); break; case 4: fxmTestSimulate.SimulateFall(num * 0.7f, this.m_fDistPerTime, this.m_nRotateIndex == 0); break; case 5: fxmTestSimulate.SimulateRaise(num * 0.7f, this.m_fDistPerTime, this.m_nRotateIndex == 0); break; case 6: fxmTestSimulate.SimulateCircle(num * 0.5f, this.m_fDistPerTime, this.m_nRotateIndex == 0); break; case 7: fxmTestSimulate.SimulateTornado(num * 0.3f, num * 0.7f, this.m_fDistPerTime, this.m_nRotateIndex == 0); break; } } if (0 < nTransIndex && 3 <= nPlayIndex) { nPlayIndex = 0; } this.m_nPlayIndex = nPlayIndex; this.m_nTransIndex = nTransIndex; if (this.IsRepeat()) { this.m_fCreateTime = Time.time; } }
private bool IsAliveAnimation() { GameObject rootInstanceEffect = NcEffectBehaviour.GetRootInstanceEffect(); Transform[] componentsInChildren = rootInstanceEffect.GetComponentsInChildren <Transform>(true); Transform[] array = componentsInChildren; for (int i = 0; i < array.Length; i++) { Transform transform = array[i]; int num = -1; int num2 = -1; bool flag = false; NcEffectBehaviour[] components = transform.GetComponents <NcEffectBehaviour>(); NcEffectBehaviour[] array2 = components; for (int j = 0; j < array2.Length; j++) { NcEffectBehaviour ncEffectBehaviour = array2[j]; int animationState = ncEffectBehaviour.GetAnimationState(); if (animationState != 0) { if (animationState == 1) { num = 1; } } else { num = 0; } } if (transform.particleSystem != null) { num2 = 0; if (NgObject.IsActive(transform.gameObject) && ((transform.particleSystem.enableEmission && transform.particleSystem.IsAlive()) || 0 < transform.particleSystem.particleCount)) { num2 = 1; } } if (num2 < 1 && transform.particleEmitter != null) { num2 = 0; if (NgObject.IsActive(transform.gameObject) && (transform.particleEmitter.emit || 0 < transform.particleEmitter.particleCount)) { num2 = 1; } } if (transform.renderer != null && transform.renderer.enabled && NgObject.IsActive(transform.gameObject)) { flag = true; } if (0 < num) { return(true); } if (num2 == 1) { return(true); } if (flag && (transform.GetComponent <MeshFilter>() != null || transform.GetComponent <TrailRenderer>() != null || transform.GetComponent <LineRenderer>() != null)) { return(true); } } return(false); }
protected void RunActionControl(int nPlayIndex, int nTransIndex) { NgUtil.LogDevelop("RunActionControl() - nPlayIndex " + nPlayIndex); CancelInvoke(); m_bCalledDelayCreate = false; // 沥瘤等 矫拌老 版快 框流捞档废 秦滴磊... ResumeTimeScale(); // Play --------------------------------------- m_bStartAliveAnimation = false; switch (nPlayIndex) { /*AutoRet*/ case 0: break; case 1: break; /*OneShot*/ case 2: SetTimeScale(m_fPlayToolbarTimes[nPlayIndex]); break; /*Repeat*/ case m_nRepeatIndex: case m_nRepeatIndex + 1: case m_nRepeatIndex + 2: case m_nRepeatIndex + 3: case m_nRepeatIndex + 4: { // repeat急琶捞搁.. 捞悼包访 可记阑 馋促. if (nPlayIndex != m_nPlayIndex) { nTransIndex = 0; } break; } } // Trans --------------------------------------- if (0 < nTransIndex) { // init multishot // if (m_nTransIndex != nTransIndex && (m_nTransIndex != 0 && nTransIndex != 0)) // m_nMultiShotCount = 1; float fTransHalfDist = (Camera.main != null ? (Vector3.Magnitude(Camera.main.transform.position) * 0.8f) : 1) * m_fTransRate; GameObject instEffectObject = FxmTestMain.inst.GetInstanceEffectObject(); GameObject simRoot = NgObject.CreateGameObject(instEffectObject.transform.parent.gameObject, "simulate"); FxmTestSimulate simComponent = simRoot.AddComponent <FxmTestSimulate>(); instEffectObject.transform.parent = simRoot.transform; FxmTestMain.inst.ChangeRoot_InstanceEffectObject(simRoot); simComponent.Init(this, m_nMultiShotCount); switch (nTransIndex) { case 1: // Move { simComponent.SimulateMove(m_nTransAxis, fTransHalfDist, m_fDistPerTime, (m_nRotateIndex == 0)); break; } case 2: // scale { simComponent.SimulateScale(m_nTransAxis, fTransHalfDist * 0.3f, m_fStartPosition, m_fDistPerTime, (m_nRotateIndex == 0)); break; } case 3: // Arc { simComponent.SimulateArc(fTransHalfDist * 0.7f, m_fDistPerTime, (m_nRotateIndex == 0)); break; } case 4: // fall { simComponent.SimulateFall(fTransHalfDist * 0.7f, m_fDistPerTime, (m_nRotateIndex == 0)); break; } case 5: // raise { simComponent.SimulateRaise(fTransHalfDist * 0.7f, m_fDistPerTime, (m_nRotateIndex == 0)); break; } case 6: // circle { simComponent.SimulateCircle(fTransHalfDist * 0.5f, m_fDistPerTime, (m_nRotateIndex == 0)); break; } case 7: // tornado { simComponent.SimulateTornado(fTransHalfDist * 0.3f, fTransHalfDist * 0.7f, m_fDistPerTime, (m_nRotateIndex == 0)); break; } } } // 捞悼贸府吝捞搁... 磊悼馆汗登骨肺 扁粮repeat可记篮 馋促. if (0 < nTransIndex) { if (m_nRepeatIndex <= nPlayIndex) { nPlayIndex = 0; } } // 弥练 搬沥蔼 历厘 m_nPlayIndex = nPlayIndex; m_nTransIndex = nTransIndex; if (IsRepeat()) { m_fCreateTime = Time.time; } }
public GameObject[] m_ReferenceObjects = new GameObject[FXMakerBackground.m_ReferenceTypeCount]; // m_ModelPrefab1, m_ModelPrefab2, // [HideInInspector] // Property ------------------------------------------------------------------------- public void SetActive() { NgObject.SetActiveRecursively(gameObject, true); }
// Loop Function -------------------------------------------------------------------- void Update() { if (m_bStartDetach == false) { m_bStartDetach = true; if (transform.parent != null) { m_ParentGameObject = transform.parent.gameObject; NcDetachObject.Create(m_ParentGameObject, transform.gameObject); } // Detach Parent GameObject parentObj = GetRootInstanceEffect(); if (m_bFollowParentTransform) { m_OriginalPos.SetLocalTransform(transform); ChangeParent(parentObj.transform, transform, false, null); m_OriginalPos.CopyToLocalTransform(transform); } else { ChangeParent(parentObj.transform, transform, false, null); } if (m_bParentHideToStartDestroy == false) { StartDestroy(); } } // Live time if (0 < m_fStartDestroyTime) { if (0 < m_fSmoothDestroyTime) { if (m_bSmoothHide) { float fRate = 1 - ((GetEngineTime() - m_fStartDestroyTime) / m_fSmoothDestroyTime); if (fRate < 0) { fRate = 0; } // Recursively Renderer[] rens = transform.GetComponentsInChildren <Renderer>(true); for (int n = 0; n < rens.Length; n++) { Renderer ren = rens[n]; string colName = GetMaterialColorName(ren.material); if (colName != null) { Color col = ren.material.GetColor(colName); col.a = Mathf.Min(fRate, col.a); ren.material.SetColor(colName, col); } } } if (m_fStartDestroyTime + m_fSmoothDestroyTime < GetEngineTime()) { Object.Destroy(gameObject); } } } else { if (m_bParentHideToStartDestroy) { if (m_ParentGameObject == null || NgObject.IsActive(m_ParentGameObject) == false) { StartDestroy(); } } } // follow parent transform if (m_bFollowParentTransform && m_ParentGameObject != null && m_ParentGameObject.transform != null) { NcTransformTool tmp = new NcTransformTool(); tmp.SetTransform(m_OriginalPos); tmp.AddTransform(m_ParentGameObject.transform); tmp.CopyToLocalTransform(transform); } }