🔍

exploring virtual volume with LeapMotion and Shader Graph / Particle System

Teil I – Volumenoberfläche


In dieser Episode bauen wir einen Shader mit Shadergraph, der uns in die Lage versetzt das Volumen eines virtuellen Körpers mit den eigenen, virtuellen, Händen, zu erfahren.

Teil II – Partikelsystem fürs Volumen


In dieser Episode arbeiten wir mit dem Partikelsystem von Unity, das uns in die Lage versetzt das Volumen eines virtuellen Körpers mit den eigenen, virtuellen, Händen, zu erfahren.

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class particle_behave : MonoBehaviour
{
    
    public ParticleSystem particleEmitter;
     ParticleSystem.Particle[] particles;
     Vector3[] opos;
     public Transform tpos;
    public float cforce = .1f;
    
      void LateUpdate()
    {
        InitializeIfNeeded();
    
      int numps =  particleEmitter.GetParticles(particles);
     

     for (int i = 0; i < numps; i++)
     {
        Vector3 diff = tpos.position - particles[i].position;
        particles[i].velocity += diff *cforce; 
     }
         particleEmitter.SetParticles(particles, numps);
    }


    void InitializeIfNeeded()
    {
        if (particleEmitter == null)
            particleEmitter = GetComponent<ParticleSystem>();

        if (particles == null || particles.Length < particleEmitter.main.maxParticles){
            particles = new ParticleSystem.Particle[ particleEmitter.main.maxParticles ];
            opos = new Vector3[particleEmitter.main.maxParticles];
        
        }
    }
}