// ========== Public Methods ========== public GameObject GetObject(EffectObjectType type) { GameObject createdObject = null; foreach (GameObject obj in _pool) { // LogUtils.instance.Log(GetClassName(), "GET_OBJECT", obj.activeSelf.ToString()); EffectObject baseObject = obj.GetComponent <EffectObject>(); if (baseObject != null && baseObject.type == type && obj.activeSelf == false) { // LogUtils.instance.Log(GetClassName(), "GetObject", obj.activeSelf.ToString()); createdObject = obj; break; } } if (createdObject == null) { createdObject = CreateObject(type); } if (createdObject != null) { createdObject.transform.position = new Vector3(-100, -100, 0); createdObject.SetActive(true); } return(createdObject); }
// ========== Private Methods ========== private GameObject CreateObject(EffectObjectType type, Transform parent = null) { // LogUtils.instance.Log(GetClassName(), "CreateObject"); GameObject objectPrefab = null; GameObject createdObject = null; // LogUtils.instance.Log(GetClassName(), "_prefabsList length", (_prefabsList.Count).ToString()); foreach (GameObject prefab in _prefabsList) { EffectObject baseObject = prefab.GetComponent <EffectObject>(); // LogUtils.instance.Log(GetClassName(), "baseObject", (baseObject.type).ToString()); if (baseObject != null && baseObject.type == type) { // LogUtils.instance.Log(GetClassName(), "CreateObject", (baseObject.type == type).ToString()); objectPrefab = prefab; break; } } // LogUtils.instance.Log(GetClassName(), "CreateObject", "(objectPrefab != null)", (objectPrefab != null).ToString()); if (objectPrefab != null) { if (parent == null) { parent = _instance.transform; } createdObject = GameObject.Instantiate(objectPrefab, Vector3.zero, Quaternion.identity, parent); if (createdObject != null) { // LogUtils.instance.Log(GetClassName(), "CreateObject", "(createdObject != null)", (createdObject != null).ToString()); createdObject.SetActive(false); _pool.Add(createdObject); } } return(createdObject); }
public virtual void DoEffectObjectAffectedByEffectObject(EffectObjectType objectType, GameObject sourceObject) { switch (objectType) { case EffectObjectType.BOMB: DoEffectDestroyObject(); break; case EffectObjectType.ICE_BOMB: DoEffectSlowedByIceBomb(sourceObject); break; default: DoEffectDestroyObject(); break; } }
public void OnAffectedByEffectObject(EffectObjectType type, GameObject sourceObject) { switch (type) { case EffectObjectType.BOMB: OnDestroyedByBomb(sourceObject); break; case EffectObjectType.ICE_BOMB: OnSlowedByIceBomb(sourceObject); break; case EffectObjectType.LIGHTNING_BALL: OnDestroyedByLightningBall(sourceObject); break; } }
public override void DoEffectObjectAffectedByEffectObject(EffectObjectType objectType, GameObject sourceObject) { switch (objectType) { case EffectObjectType.BOMB: DoEffectDestroyObject(); break; case EffectObjectType.ICE_BOMB: DoEffectDestroyObject(); break; default: DoEffectDestroyObject(); break; } }
public override void OnAffectedByEffectObject(EffectObjectType type, GameObject sourceObject) { switch (type) { case EffectObjectType.BOMB: DestroyObjectByBullet(); break; case EffectObjectType.ICE_BOMB: OnSlowedByIceBomb(sourceObject); break; case EffectObjectType.LIGHTNING_BALL: DestroyObjectByBullet(); break; default: DestroyObjectByBullet(); break; } }
public override void DoEffectObjectAffectedByEffectObject(EffectObjectType objectType, GameObject sourceObject) { switch (objectType) { case EffectObjectType.BOMB: DoEffectDestroyObjectByBomb(sourceObject); break; case EffectObjectType.ICE_BOMB: DoEffectSlowedByIceBomb(sourceObject); break; case EffectObjectType.LIGHTNING_BALL: DoEffectDestroyObjectByLightningBall(sourceObject); break; default: DoEffectDestroyObject(); break; } }
public static ShaderVariableType ToShaderVariableType(this EffectObjectType effectType) { switch (effectType) { case EffectObjectType.Void: return(ShaderVariableType.Void); case EffectObjectType.Float: return(ShaderVariableType.Float); case EffectObjectType.UInt: return(ShaderVariableType.UInt); case EffectObjectType.Int: return(ShaderVariableType.Int); case EffectObjectType.Bool: return(ShaderVariableType.Bool); case EffectObjectType.String: return(ShaderVariableType.String); case EffectObjectType.Blend: return(ShaderVariableType.Blend); case EffectObjectType.DepthStencil: return(ShaderVariableType.DepthStencil); case EffectObjectType.Rasterizer: return(ShaderVariableType.Rasterizer); case EffectObjectType.PixelShader: return(ShaderVariableType.PixelShader); case EffectObjectType.VertexShader: return(ShaderVariableType.VertexShader); case EffectObjectType.GeometryShader: return(ShaderVariableType.GeometryShader); case EffectObjectType.GeometryShaderWithStream: return(ShaderVariableType.GeometryShader); case EffectObjectType.Texture: return(ShaderVariableType.Texture); case EffectObjectType.Texture1D: return(ShaderVariableType.Texture1D); case EffectObjectType.Texture1DArray: return(ShaderVariableType.Texture1DArray); case EffectObjectType.Texture2D: return(ShaderVariableType.Texture2D); case EffectObjectType.Texture2DArray: return(ShaderVariableType.Texture2DArray); case EffectObjectType.Texture2DMultiSampled: return(ShaderVariableType.Texture2DMultiSampled); case EffectObjectType.Texture2DMultiSampledArray: return(ShaderVariableType.Texture2DMultiSampledArray); case EffectObjectType.Texture3D: return(ShaderVariableType.Texture3D); case EffectObjectType.TextureCube: return(ShaderVariableType.TextureCube); case EffectObjectType.RenderTargetView: return(ShaderVariableType.RenderTargetView); case EffectObjectType.DepthStencilView: return(ShaderVariableType.DepthStencilView); case EffectObjectType.Sampler: return(ShaderVariableType.Sampler); case EffectObjectType.Buffer: return(ShaderVariableType.Buffer); case EffectObjectType.TextureCubeArray: return(ShaderVariableType.TextureCubeArray); case EffectObjectType.PixelShader5: return(ShaderVariableType.PixelShader); case EffectObjectType.VertexShader5: return(ShaderVariableType.VertexShader); case EffectObjectType.GeometryShader5: return(ShaderVariableType.GeometryShader); case EffectObjectType.ComputeShader5: return(ShaderVariableType.ComputeShader); case EffectObjectType.HullShader5: return(ShaderVariableType.HullShader); case EffectObjectType.DomainShader5: return(ShaderVariableType.DomainShader); //TODO: Bring RW and ReadWrite notation into alignment case EffectObjectType.RWTexture1D: return(ShaderVariableType.ReadWriteTexture1D); case EffectObjectType.RWTexture1DArray: return(ShaderVariableType.ReadWriteTexture1DArray); case EffectObjectType.RWTexture2D: return(ShaderVariableType.ReadWriteTexture2D); case EffectObjectType.RWTexture2DArray: return(ShaderVariableType.ReadWriteTexture2DArray); case EffectObjectType.RWTexture3D: return(ShaderVariableType.ReadWriteTexture3D); case EffectObjectType.RWBuffer: return(ShaderVariableType.ReadWriteBuffer); case EffectObjectType.ByteAddressBuffer: return(ShaderVariableType.ByteAddressBuffer); case EffectObjectType.RWByteAddressBuffer: return(ShaderVariableType.ReadWriteByteAddressBuffer); case EffectObjectType.StructuredBuffer: return(ShaderVariableType.StructuredBuffer); case EffectObjectType.RWStructuredBuffer: return(ShaderVariableType.ReadWriteStructuredBuffer); case EffectObjectType.AppendStructuredBuffer: return(ShaderVariableType.AppendStructuredBuffer); case EffectObjectType.ConsumeStructuredBuffer: return(ShaderVariableType.ConsumeStructuredBuffer); default: return(ShaderVariableType.Void); } }
public abstract void OnAffectedByEffectObject(EffectObjectType type, GameObject sourceObject);