pyunity.core module¶
Core classes for the PyUnity library.
This module has some key classes used throughout PyUnity, and have to be in the same file due to references both ways. Usually when you create a scene, you should never create Components directly, instead add them with AddComponent.
Example
To create a GameObject with 2 children, one of which has its own child, and all have MeshRenderers:
>>> from pyunity import * # Import
Loaded config
Trying GLFW as a window provider
GLFW doesn't work, trying Pygame
Trying Pygame as a window provider
Using window provider Pygame
Loaded PyUnity version 0.2.0
>>> mat = Material((255, 0, 0)) # Create a default material
>>> root = GameObject("Root") # Create a root GameObjects
>>> child1 = GameObject("Child1", root) # Create a child
>>> child1.transform.localPosition = Vector3(-2, 0, 0) # Move the child
>>> renderer = child1.AddComponent(MeshRenderer) # Add a renderer
>>> renderer.mat = mat # Add a material
>>> renderer.mesh = Mesh.cube(2) # Add a mesh
>>> child2 = GameObject("Child2", root) # Create another child
>>> renderer = child2.AddComponent(MeshRenderer) # Add a renderer
>>> renderer.mat = mat # Add a material
>>> renderer.mesh = Mesh.quad(1) # Add a mesh
>>> grandchild = GameObject("Grandchild", child2) # Add a grandchild
>>> grandchild.transform.localPosition = Vector3(0, 5, 0) # Move the grandchild
>>> renderer = grandchild.AddComponent(MeshRenderer) # Add a renderer
>>> renderer.mat = mat # Add a material
>>> renderer.mesh = Mesh.cube(3) # Add a mesh
>>> root.transform.List() # List all GameObjects
/Root
/Root/Child1
/Root/Child2
/Root/Child2/Grandchild
>>> child1.components # List child1's components
[<Transform position=Vector3(-2, 0, 0) rotation=Quaternion(1, 0, 0, 0) scale=Vector3(2, 2, 2) path="/Root/Child1">, <pyunity.core.MeshRenderer object at 0x0B14FCB8>]
>>> child2.transform.children # List child2's children
[<Transform position=Vector3(0, 5, 0) rotation=Quaternion(1, 0, 0, 0) scale=Vector3(3, 3, 3) path="/Root/Child2/Grandchild">]
-
class
pyunity.core.
Behaviour
[source]¶ Bases:
pyunity.core.Component
Base class for behaviours that can be scripted.
-
gameObject
¶ GameObject that the component belongs to.
- Type
-
-
class
pyunity.core.
Camera
[source]¶ Bases:
pyunity.core.Component
Component to hold data about the camera in a scene.
-
fov
¶ Fov in degrees measured horizontally. Defaults to 90.
- Type
int
-
near
¶ Distance of the near plane in the camera frustrum. Defaults to 0.05.
- Type
float
-
far
¶ Distance of the far plane in the camera frustrum. Defaults to 100.
- Type
float
-
clearColor
¶ Tuple of 4 floats of the clear color of the camera. Defaults to (.1, .1, .1, 1). Color mode is RGBA.
- Type
tuple
-
-
class
pyunity.core.
Component
[source]¶ Bases:
object
Base class for built-in components.
-
gameObject
¶ GameObject that the component belongs to.
- Type
-
-
class
pyunity.core.
GameObject
(name='GameObject', parent=None)[source]¶ Bases:
object
Class to create a GameObject, which is an object with components.
- Parameters
name (str, optional) – Name of GameObject
parent (GameObject or None) – Parent of GameObject
-
name
¶ Name of the GameObject
- Type
str
-
components
¶ List of components
- Type
list
-
class
pyunity.core.
Light
[source]¶ Bases:
pyunity.core.Component
Component to hold data about the light in a scene.
-
class
pyunity.core.
Material
(color)[source]¶ Bases:
object
Class to hold data on a material.
-
color
¶ A list or tuple of 4 floats that make up a RGBA color.
- Type
list or tuple
-
-
class
pyunity.core.
MeshRenderer
[source]¶ Bases:
pyunity.core.Component
Component to render a mesh at the position of a transform.
-
class
pyunity.core.
Tag
(tagNumOrName)[source]¶ Bases:
object
Class to group GameObjects together without referencing the tags.
- Parameters
tagNumOrName (str or int) – Name or index of the tag
- Raises
ValueError – If there is no tag name
IndexError – If there is no tag at the provided index
TypeError – If the argument is not a str or int
-
tagName
¶ Tag name
- Type
str
-
tag
¶ Tag index of the list of tags
- Type
int
-
class
pyunity.core.
Transform
[source]¶ Bases:
pyunity.core.Component
Class to hold data about a GameObject’s transformation.
-
gameObject
¶ GameObject that the component belongs to.
- Type
-
localRotation
¶ Rotation of the Transform in local space.
- Type
-
parent
¶ Parent of the Transform. The hierarchical tree is actually formed by the Transform, not the GameObject.
- Type
Transform or None
-
children
¶ List of children
- Type
list
-
FullPath
()[source]¶ Gets the full path of the Transform.
- Returns
The full path of the Transform.
- Return type
str
-
List
()[source]¶ Prints the Transform’s full path from the root, then lists the children in alphabetical order. This results in a nice list of all GameObjects.
-
ReparentTo
(parent)[source]¶ Reparent a Transform.
- Parameters
parent (Transform) – The parent to reparent to.
-
property
eulerAngles
¶ Rotation of the Transform in world space. It is measured in degrees around x, y, and z.
-
property
localEulerAngles
¶ Rotation of the Transform in local space. It is measured in degrees around x, y, and z.
-
property
position
¶ Position of the Transform in world space.
-
property
rotation
¶ Rotation of the Transform in world space.
-
property
scale
¶ Scale of the Transform in world space.
-
List of current tags