Exemple #1
0
    // ========== 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);
    }
Exemple #2
0
    // ========== 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;
        }
    }
Exemple #6
0
    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;
        }
    }
Exemple #7
0
    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);
            }
        }
Exemple #9
0
 public abstract void OnAffectedByEffectObject(EffectObjectType type, GameObject sourceObject);