예제 #1
0
    public void SetAttributeSafe(int attribId, int valueX, int valueY, int valueZ, int valueW)
    {
        PKFxFxAsset.AttributeDesc attributeDesc = m_FxAsset.m_AttributeDescs[attribId];

        if (attributeDesc.m_Type != PKFxManagerImpl.EBaseType.Int4)
        {
            Debug.LogError("Type mismatch for the attribute");
            return;
        }
        if (attributeDesc.HasMin())
        {
            valueX = Mathf.Max(PKFxManagerImpl.Float2Int(attributeDesc.m_MinValue0), valueX);
            valueY = Mathf.Max(PKFxManagerImpl.Float2Int(attributeDesc.m_MinValue1), valueY);
            valueZ = Mathf.Max(PKFxManagerImpl.Float2Int(attributeDesc.m_MinValue2), valueZ);
            valueW = Mathf.Max(PKFxManagerImpl.Float2Int(attributeDesc.m_MinValue3), valueW);
        }
        if (attributeDesc.HasMax())
        {
            valueX = Mathf.Min(PKFxManagerImpl.Float2Int(attributeDesc.m_MaxValue0), valueX);
            valueY = Mathf.Min(PKFxManagerImpl.Float2Int(attributeDesc.m_MaxValue1), valueY);
            valueZ = Mathf.Min(PKFxManagerImpl.Float2Int(attributeDesc.m_MaxValue2), valueZ);
            valueW = Mathf.Min(PKFxManagerImpl.Float2Int(attributeDesc.m_MaxValue3), valueW);
        }
        SetAttributeUnsafe(attribId, valueX, valueY, valueZ, valueW);
    }
예제 #2
0
    public void SetAttributeSafe(int attribId, float valueX)
    {
        PKFxFxAsset.AttributeDesc attributeDesc = m_FxAsset.m_AttributeDescs[attribId];

        if (attributeDesc.m_Type != PKFxManagerImpl.EBaseType.Float)
        {
            Debug.LogError("Type mismatch for the attribute");
            return;
        }
        if (attributeDesc.HasMin())
        {
            valueX = Mathf.Max(attributeDesc.m_MinValue0, valueX);
        }
        if (attributeDesc.HasMax())
        {
            valueX = Mathf.Min(attributeDesc.m_MaxValue0, valueX);
        }
        SetAttributeUnsafe(attribId, valueX);
    }