예제 #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);
    }
    private static void OnEffectAttributeFound(IntPtr attributeDescPtr)
    {
        if (attributeDescPtr == IntPtr.Zero)
        {
            return;
        }

        SNativeAttributeDesc nativeAttrDesc = (SNativeAttributeDesc)Marshal.PtrToStructure(attributeDescPtr, typeof(SNativeAttributeDesc));

        PKFxFxAsset.AttributeDesc attrDesc = new PKFxFxAsset.AttributeDesc(nativeAttrDesc);

        m_CurrentlyImportedAsset.m_AttributeDescs.Add(attrDesc);
    }
예제 #3
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);
    }