---
title: SKUniform
framework: spritekit
role: symbol
role_heading: Class
path: spritekit/skuniform
---

# SKUniform

A container for uniform shader data.

## Declaration

```swift
class SKUniform
```

## Mentioned in

Creating a Custom Fragment Shader

## Overview

Overview An SKUniform object is used to hold uniform data for a custom OpenGL or OpenGL ES shader. The uniform data is accessible from all shaders that include the uniform.To use a uniform variable in your shader, create the SKUniform object and set its initial value. Once its value is specified, the uniformType property changes to match the type of the initial value you provided and can never change afterward. To use the uniform object, add it to an SKShader object that needs to access the uniform variable. To update the uniform variable’s value, choose the appropriate property on the uniform object based on the data type it encapsulates.

## Topics

### Creating and Initializing Uniform Objects

- [init(name:)](spritekit/skuniform/init(name:).md)
- [init(name:float:)](spritekit/skuniform/init(name:float:)-48rln.md)
- [init(name:float:)](spritekit/skuniform/init(name:float:)-9g5vj.md)
- [init(name:float:)](spritekit/skuniform/init(name:float:)-9g6a7.md)
- [init(name:float:)](spritekit/skuniform/init(name:float:)-9g7j7.md)
- [init(name:float:)](spritekit/skuniform/init(name:float:)-6110m.md)
- [init(name:float:)](spritekit/skuniform/init(name:float:)-611hs.md)
- [init(name:float:)](spritekit/skuniform/init(name:float:)-60zbm.md)
- [init(name:texture:)](spritekit/skuniform/init(name:texture:).md)

### Reading Information About a Uniform

- [name](spritekit/skuniform/name.md)
- [uniformType](spritekit/skuniform/uniformtype.md)

### Reading and Writing an Uniform Object’s Value

- [floatValue](spritekit/skuniform/floatvalue.md)
- [floatVector2Value](spritekit/skuniform/floatvector2value.md)
- [floatVector3Value](spritekit/skuniform/floatvector3value.md)
- [floatVector4Value](spritekit/skuniform/floatvector4value.md)
- [floatMatrix2Value](spritekit/skuniform/floatmatrix2value.md)
- [floatMatrix3Value](spritekit/skuniform/floatmatrix3value.md)
- [floatMatrix4Value](spritekit/skuniform/floatmatrix4value.md)
- [textureValue](spritekit/skuniform/texturevalue.md)

### Constants

- [SKUniformType](spritekit/skuniformtype.md)

### Initializers

- [init(name:matrixFloat2x2:)](spritekit/skuniform/init(name:matrixfloat2x2:).md)
- [init(name:matrixFloat3x3:)](spritekit/skuniform/init(name:matrixfloat3x3:).md)
- [init(name:matrixFloat4x4:)](spritekit/skuniform/init(name:matrixfloat4x4:).md)
- [init(name:vectorFloat2:)](spritekit/skuniform/init(name:vectorfloat2:).md)
- [init(name:vectorFloat3:)](spritekit/skuniform/init(name:vectorfloat3:).md)
- [init(name:vectorFloat4:)](spritekit/skuniform/init(name:vectorfloat4:).md)
- [init(coder:)](spritekit/skuniform/init(coder:).md)
- [init(name:floatMatrix2:)](spritekit/skuniform/init(name:floatmatrix2:)-39w1i.md)
- [init(name:floatMatrix2:)](spritekit/skuniform/init(name:floatmatrix2:)-3zlmz.md)
- [init(name:floatMatrix3:)](spritekit/skuniform/init(name:floatmatrix3:)-5kh8w.md)
- [init(name:floatMatrix3:)](spritekit/skuniform/init(name:floatmatrix3:)-xf7x.md)
- [init(name:floatMatrix4:)](spritekit/skuniform/init(name:floatmatrix4:)-13pbm.md)
- [init(name:floatMatrix4:)](spritekit/skuniform/init(name:floatmatrix4:)-9xcfm.md)
- [init(name:floatVector2:)](spritekit/skuniform/init(name:floatvector2:)-2yocf.md)
- [init(name:floatVector2:)](spritekit/skuniform/init(name:floatvector2:)-7fwo7.md)
- [init(name:floatVector3:)](spritekit/skuniform/init(name:floatvector3:)-8gnuo.md)
- [init(name:floatVector3:)](spritekit/skuniform/init(name:floatvector3:)-984ul.md)
- [init(name:floatVector4:)](spritekit/skuniform/init(name:floatvector4:)-298dz.md)
- [init(name:floatVector4:)](spritekit/skuniform/init(name:floatvector4:)-o019.md)

### Instance Properties

- [matrixFloat2x2Value](spritekit/skuniform/matrixfloat2x2value.md)
- [matrixFloat3x3Value](spritekit/skuniform/matrixfloat3x3value.md)
- [matrixFloat4x4Value](spritekit/skuniform/matrixfloat4x4value.md)
- [vectorFloat2Value](spritekit/skuniform/vectorfloat2value.md)
- [vectorFloat3Value](spritekit/skuniform/vectorfloat3value.md)
- [vectorFloat4Value](spritekit/skuniform/vectorfloat4value.md)

## Relationships

### Inherits From

- [NSObject](objectivec/nsobject-swift.class.md)

### Conforms To

- [CVarArg](swift/cvararg.md)
- [CustomDebugStringConvertible](swift/customdebugstringconvertible.md)
- [CustomStringConvertible](swift/customstringconvertible.md)
- [Equatable](swift/equatable.md)
- [Hashable](swift/hashable.md)
- [NSCoding](foundation/nscoding.md)
- [NSCopying](foundation/nscopying.md)
- [NSObjectProtocol](objectivec/nsobjectprotocol.md)
- [NSSecureCoding](foundation/nssecurecoding.md)

## See Also

### Shaders

- [SKShader](spritekit/skshader.md)
- [SKAttribute](spritekit/skattribute.md)
- [SKAttributeValue](spritekit/skattributevalue.md)
