Skip to content

Instantly share code, notes, and snippets.

@danielbierwirth
danielbierwirth / ImportOptimizeExport.cs
Created December 16, 2024 10:27
Simple VisualStudio C# .Net Program that useless the PiXYZ C# SDK to import, optimise, and export the CAD file from local storage.
using System;
using System.IO;
// PiXYZ SDK namespaces
using UnityEngine.Pixyz.Algo;
using UnityEngine.Pixyz.API;
using UnityEngine.Pixyz.Scene;
using UnityEngine.Pixyz.IO;
using UnityEngine.Pixyz.Core;
namespace PixyzDemo
@danielbierwirth
danielbierwirth / CinematicCameraPath.cs
Created November 18, 2024 20:01
This Unity C# script animates the camera's movement along a predefined path using transform waypoints while maintaining focus on a specific point of interest. Ideal for creating quick and efficient cinematic camera movements.
using UnityEngine;
// This code allows the camera to focus on a specific object while
// moving through predefined waypoints, enhancing the cinematic effect
//and dynamic camera movement in your game or application.
public class CinematicCameraPath : MonoBehaviour
{
[SerializeField] private Camera cameraToAnimate; // The camera that gets animated
[SerializeField] private Transform[] waypoints; // The points the camera will move between
[SerializeField] private float speed = 5.0f; // The speed of the camera movement
[SerializeField] private bool loop = false; // Whether the path should loop
@danielbierwirth
danielbierwirth / import-optimise-export.py
Created November 18, 2024 19:56
This Python script is a simplified demonstration of the import, optimisation, and export workflow using the Pixyz SDK, inspired by the official Pixyz Folder Watcher sample project. The script begins by reading the input dataset, after which it leverages Pixyz's advanced optimisation algorithms to reduce data complexity. Once the optimisation pro…
import os
import pxz
from pxz import algo, scene, io, core
def init_pixyz():
"""
Initialize Pixyz and configure log level to INFO.
"""
pxz.initialize()
print(core.getVersion())
@danielbierwirth
danielbierwirth / AsyncTaskRunner.cs
Last active July 1, 2024 13:39
Unity C# script to execute task asynchronously in background and process result on Unity main thread. The script can be used to run compute intensive or other operations such as HTTP stream listener in background. The UnityMainThreadDispatcher is used to move the result of async task to the main thread.
using System;
using System.Threading.Tasks;
using UnityEngine;
using PimDeWitte.UnityMainThreadDispatcher;
/// <summary>
/// A Unity C# script to execute task asynchronously and process result on Unity main thread.
/// </summary>
/// Note: This script utilizes the UnityMainThreadDispatcher
/// from https://github.com/PimDeWitte/UnityMainThreadDispatcher package
@danielbierwirth
danielbierwirth / generate_model_description.py
Created June 10, 2024 08:48
Pixyz Studio automation script to export model hierarchy and metadata as json file. Each occurrence with attached metadata will be exported as json tree. Run this script in Pixyz Studio python console
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
# [USER PARAMETER] Desired file path
FILE_PATH = 'C:/output/modeldescription.json'
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
def get_metadata_dict(metadata):
metadata_dict = dict()
metadata_dict['name'] = metadata.name
metadata_dict['value'] = metadata.value
@danielbierwirth
danielbierwirth / PostProcessorFileCopy.cs
Last active March 25, 2025 20:20
#unity3d post-process class (c#) that copies a directory including content and subdirectories from source to target location as unity build post-process. place this script inside Editor folder somewhere within Assets directory
/// <summary>
/// PostProcessorFileCopy class contains functions to copy source folder and subfolders/files (recursive)
/// to build directory as post process after build. Place this class inside Editor folder.
/// </summary>
public class PostProcessorFileCopy {
[PostProcessBuild]
public static void OnPostprocessBuild(BuildTarget target, string pathToBuildfile) {
@danielbierwirth
danielbierwirth / GetComponents.cs
Last active February 23, 2019 13:34
Quickly access Child Components
using System.Collections.Generic;
namespace UnityEngine
{
public static class UnityEngineEx
{
public static T GetComponentInDirectChildren<T>(this Component parent) where T : Component
{
@danielbierwirth
danielbierwirth / addmeshcollider.cs
Last active July 18, 2017 14:56
unity function that gets all meshes of parent gameObject including it's child gameObjects and adds corresponding meshcollider to parent gameObject
/// <summary>
/// Add mesh collider to game object
/// Gets all child components, looks for meshes and assings
/// them to gameobject meshcollider
/// </summary>
/// <param name="containerModel">The gameobject</param>
private void AddMeshCollider (GameObject containerModel)
{
// Add mesh collider
MeshFilter meshFilter = containerModel.GetComponent<MeshFilter>();
@danielbierwirth
danielbierwirth / TCPTestClient.cs
Last active August 17, 2024 07:19
TCP Client-Server Connection Example | Unity | C# | Bidirectional communication sample: Client can connect to server; Client can send and receive messages: Server accepts clients; Server reads client messages; Server sends messages to client
// This work is licensed under the Creative Commons Attribution-ShareAlike 4.0 International License.
// To view a copy of this license, visit http://creativecommons.org/licenses/by-sa/4.0/
// or send a letter to Creative Commons, PO Box 1866, Mountain View, CA 94042, USA.
using System;
using System.Collections;
using System.Collections.Generic;
using System.Net.Sockets;
using System.Text;
using System.Threading;
using UnityEngine;
@danielbierwirth
danielbierwirth / OffscreenRendering.cs
Last active April 9, 2024 21:32
Offscreen rendering script (unity | c#) | render camera view to texture | save texture as png
using System.Collections; using System.Collections.Generic;
using System.IO; using UnityEngine;
/// <summary>
/// Attach this script to an empty gameObject. Create a secondary camera
/// gameObject for offscreen rendering (not your main camera) and connect it
/// with this script. Offscreen camera should have a texture object attached to it.
/// OffscreenCamera texture object is used for rendering (please see camera properties).
/// </summary>
public class OffscreenRendering : MonoBehaviour {