unity

package
v0.3.5 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jan 22, 2022 License: MIT Imports: 14 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var UnityMeshes = map[Ref]string{
	{FileID: 10202, GUID: "0000000000000000e000000000000000"}: "Cube",
	{FileID: 10206, GUID: "0000000000000000e000000000000000"}: "Cylinder",
	{FileID: 10207, GUID: "0000000000000000e000000000000000"}: "Sphere",
	{FileID: 10208, GUID: "0000000000000000e000000000000000"}: "Capsule",
	{FileID: 10209, GUID: "0000000000000000e000000000000000"}: "Plane",
	{FileID: 10210, GUID: "0000000000000000e000000000000000"}: "Quad",
}
View Source
var UnityShaders = map[Ref]string{
	{FileID: 45, GUID: "0000000000000000f000000000000000"}:      "StandardSpecularSetup",
	{FileID: 46, GUID: "0000000000000000f000000000000000"}:      "Standard",
	{FileID: 47, GUID: "0000000000000000f000000000000000"}:      "AutodeskInteractive ",
	{FileID: 4800000, GUID: "933532a4fcc9baf4fa0491de14d08ed7"}: "URP/Lit ",
	{FileID: 4800000, GUID: "650dd9526735d5b46b79224bc6e94025"}: "URP/Unlit ",
	{FileID: 4800000, GUID: "8d2bb70cbf9db8d4da26e15b26e74248"}: "URP/SimpleLit ",
}

Functions

func DumpScene

func DumpScene(s *Scene, dumpComponents bool)

Types

type Asset

type Asset struct {
	GUID string
	Path string
}

type Assets

type Assets interface {
	GetSourcePath() string
	GetAsset(guid string) *Asset
	GetAssetByPath(assetPath string) *Asset
	GetAllAssets() []*Asset
	GetMetaFile(asset *Asset) (*MetaFile, error)
	Open(assetPath string) (fs.File, error)
	Close() error
}

func OpenAssets

func OpenAssets(assetsDir string) (Assets, error)

OpenAssets opens Assets dir.

func OpenPackage

func OpenPackage(packagePath string) (Assets, error)

OpenPackage opens .unitypackage file or dir.

func OpenProject added in v0.3.5

func OpenProject(projectDir string) (Assets, error)

OpenProject opens Unity project.

type BaseComponent added in v0.3.5

type BaseComponent struct {
	Scene *Scene `yaml:"-"`

	ObjectHideFlags int `yaml:"m_ObjectHideFlags"`
	PrefabInternal  Ref `yaml:"m_PrefabInternal"`
	GameObject      Ref `yaml:"m_GameObject"`

	CorrespondingSourceObject *Ref `yaml:"m_CorrespondingSourceObject"`
	PrefabInstance            *Ref `yaml:"m_PrefabInstance"`
}

func (*BaseComponent) GetGameObject added in v0.3.5

func (c *BaseComponent) GetGameObject() *GameObject

type BoxCollider added in v0.3.5

type BoxCollider struct {
	BaseComponent `yaml:",inline"`

	IsTrigger int          `yaml:"m_IsTrigger"`
	Center    geom.Vector3 `yaml:"m_Center"`
	Size      geom.Vector3 `yaml:"m_Size"`
}

type CapsuleCollider added in v0.3.5

type CapsuleCollider struct {
	BaseComponent `yaml:",inline"`

	IsTrigger int          `yaml:"m_IsTrigger"`
	Center    geom.Vector3 `yaml:"m_Center"`
	Radius    float32      `yaml:"m_Radius"`
	Direction int          `yaml:"m_Direction"`
	Height    float32      `yaml:"m_Height"`
}

type Color

type Color struct {
	R float32
	G float32
	B float32
	A float32
}

type Component

type Component interface {
	GetGameObject() *GameObject
	// contains filtered or unexported methods
}

type Element

type Element interface{}

type GameObject

type GameObject struct {
	Name      string `yaml:"m_Name"`
	IsActive  int    `yaml:"m_IsActive"`
	TagString string `yaml:"m_TagString"`

	Components []*struct {
		Ref Ref `yaml:"component"`
	} `yaml:"m_Component"`

	CorrespondingSourceObject *Ref `yaml:"m_CorrespondingSourceObject"`
	PrefabInstance            *Ref `yaml:"m_PrefabInstance"`

	Scene *Scene `yaml:"-"`
}

func (*GameObject) Dump

func (o *GameObject) Dump(indent int, recursive, component bool)

func (*GameObject) GetComponent

func (o *GameObject) GetComponent(target interface{}) bool

func (*GameObject) GetComponents added in v0.3.5

func (o *GameObject) GetComponents(target interface{})

func (*GameObject) GetTransform

func (o *GameObject) GetTransform() *Transform

type Material

type Material struct {
	Name           string `yaml:"m_Name"`
	Shader         *Ref   `yaml:"m_Shader"`
	ShaderKeywords string `yaml:"m_ShaderKeywords"`

	LightmapFlags            int               `yaml:"m_LightmapFlags"`
	EnableInstancingVariants int               `yaml:"m_EnableInstancingVariants"`
	DoubleSidedGI            int               `yaml:"m_DoubleSidedGI"`
	CustomRenderQueue        int               `yaml:"m_CustomRenderQueue"`
	StringTagMap             map[string]string `yaml:"stringTagMap"`
	DisabledShaderPasses     []string          `yaml:"disabledShaderPasses"`

	SavedProperties struct {
		TexEnvs []map[string]*TextureEnv `yaml:"m_TexEnvs"`
		Floats  []map[string]float32     `yaml:"m_Floats"`
		Colors  []map[string]*Color      `yaml:"m_Colors"`
	} `yaml:"m_SavedProperties"`
}

func LoadMaterial

func LoadMaterial(assets Assets, guid string) (*Material, error)

func (*Material) GetColorProperty

func (m *Material) GetColorProperty(name string) *Color

func (*Material) GetFloatProperty

func (m *Material) GetFloatProperty(name string) (float32, bool)

func (*Material) GetTextureProperty

func (m *Material) GetTextureProperty(name string) *TextureEnv

type MeshCollider added in v0.3.5

type MeshCollider struct {
	BaseComponent `yaml:",inline"`

	Enabled   int  `yaml:"m_Enabled"`
	Mesh      *Ref `yaml:"m_Mesh"`
	IsTrigger int  `yaml:"m_IsTrigger"`
}

type MeshFilter

type MeshFilter struct {
	BaseComponent `yaml:",inline"`
	Mesh          *Ref `yaml:"m_Mesh"`
}

type MeshRenderer

type MeshRenderer struct {
	BaseComponent `yaml:",inline"`
	Enabled       int `yaml:"m_Enabled"`

	CastShadows          int `yaml:"m_CastShadows"`
	ReceiveShadows       int `yaml:"m_ReceiveShadows"`
	DynamicOccludee      int `yaml:"m_DynamicOccludee"`
	MotionVectors        int `yaml:"m_MotionVectors"`
	LightProbeUsage      int `yaml:"m_LightProbeUsage"`
	ReflectionProbeUsage int `yaml:"m_ReflectionProbeUsage"`

	Materials []*Ref `yaml:"m_Materials"`
}

type MetaFile

type MetaFile struct {
	FileFormatVersion    int                    `yaml:"fileFormatVersion"`
	GUID                 string                 `yaml:"guid"`
	NativeFormatImporter map[string]interface{} `yaml:"NativeFormatImporter"`
	TextureImporter      map[string]interface{} `yaml:"TextureImporter"`
	ModelImporter        *struct {
		FileIDToRecycleName map[int64]string `yaml:"fileIDToRecycleName"`
	} `yaml:"ModelImporter"`
	RawData map[string]interface{} `yaml:",inline"`
}

func (*MetaFile) GetRecycleNameByFileID

func (m *MetaFile) GetRecycleNameByFileID(fileID int64) string

type MonoBehaviour

type MonoBehaviour struct {
	BaseComponent `yaml:",inline"`

	Enabled int  `yaml:"m_Enabled"`
	Script  *Ref `yaml:"m_Script"`

	RawData map[string]interface{} `yaml:",inline"`
}

type PrefabInstance

type PrefabInstance struct {
	Modification struct {
		Modifications []struct {
			Target          *Ref        `yaml:"target"`
			PropertyPath    string      `yaml:"propertyPath"`
			Value           interface{} `yaml:"value"`
			ObjectReference *Ref        `yaml:"objectReference"`
		} `yaml:"m_Modifications"`
		TransformParent   *Ref          `yaml:"m_TransformParent"`
		RemovedComponents []interface{} `yaml:"m_RemovedComponents"`
	} `yaml:"m_Modification"`

	SourcePrefab *Ref   `yaml:"m_SourcePrefab"`
	PrefabScene  *Scene `yaml:"-"`
}

type Ref

type Ref struct {
	FileID int64  `yaml:"fileID"`
	GUID   string `yaml:"guid"`
	Type   int    `yaml:"type"`
}

func (*Ref) IsValid

func (r *Ref) IsValid() bool

type Rigidbody added in v0.3.5

type Rigidbody struct {
	BaseComponent `yaml:",inline"`

	Mass               float32 `yaml:"m_Mass"`
	Drag               float32 `yaml:"m_Drag"`
	AngularDrag        float32 `yaml:"m_AngularDrag"`
	UseGravity         int     `yaml:"m_UseGravity"`
	IsKinematic        int     `yaml:"m_IsKinematic"`
	Interpolate        int     `yaml:"m_Interpolate"`
	Constraints        int     `yaml:"m_Constraints"`
	CollisionDetection int     `yaml:"m_CollisionDetection"`
}

type Scene

type Scene struct {
	GUID    string
	Objects []*GameObject

	Elements map[int64]Element

	Assets Assets
}

func LoadScene

func LoadScene(assets Assets, scenePath string) (*Scene, error)

Load *.unity or *.prefab

func LoadSceneAsset

func LoadSceneAsset(assets Assets, sceneAsset *Asset) (*Scene, error)

func NewScene

func NewScene(assets Assets, guid string) *Scene

func (*Scene) GetElement

func (s *Scene) GetElement(ref *Ref) Element

func (*Scene) GetElement2

func (s *Scene) GetElement2(ref *Ref, prefabInstance *Ref) Element

func (*Scene) GetGameObject

func (s *Scene) GetGameObject(ref *Ref) *GameObject

func (*Scene) GetTransform added in v0.3.3

func (s *Scene) GetTransform(ref *Ref, prefabInstance *Ref) *Transform

type SphereCollider added in v0.3.5

type SphereCollider struct {
	BaseComponent `yaml:",inline"`

	IsTrigger int          `yaml:"m_IsTrigger"`
	Center    geom.Vector3 `yaml:"m_Center"`
	Radius    float32      `yaml:"m_Radius"`
}

type TextureEnv

type TextureEnv struct {
	Texture *Ref         `yaml:"m_Texture"`
	Scale   geom.Vector2 `yaml:"m_Scale"`
	Offset  geom.Vector2 `yaml:"m_Offset"`
}

type Transform

type Transform struct {
	BaseComponent `yaml:",inline"`
	Father        Ref    `yaml:"m_Father"`
	Children      []*Ref `yaml:"m_Children"`

	LocalRotation geom.Vector4 `yaml:"m_LocalRotation"`
	LocalPosition geom.Vector3 `yaml:"m_LocalPosition"`
	LocalScale    geom.Vector3 `yaml:"m_LocalScale"`

	RootOrder int `yaml:"m_RootOrder"`
	// contains filtered or unexported fields
}

func (*Transform) AddChild added in v0.3.3

func (tr *Transform) AddChild(child *Transform) bool

func (*Transform) GetChildren

func (tr *Transform) GetChildren() []*Transform

func (*Transform) GetMatrix

func (tr *Transform) GetMatrix() *geom.Matrix4

func (*Transform) GetParent

func (tr *Transform) GetParent() *Transform

func (*Transform) GetWorldMatrix

func (tr *Transform) GetWorldMatrix() *geom.Matrix4

type YAMLDoc

type YAMLDoc struct {
	Tag string // tag:unity3d.com,2011:1

	Body []byte
	// contains filtered or unexported fields
}

func ParseYamlDocuments

func ParseYamlDocuments(data []byte) []*YAMLDoc

func (*YAMLDoc) Decode

func (d *YAMLDoc) Decode(dst interface{}) error

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL