コード例 #1
0
        public override void ApplyForcesToActor(ObiActor actor)
        {
            Matrix4x4 l2sTransform;

            if (actor.Solver.simulateInLocalSpace)
            {
                l2sTransform = actor.Solver.transform.worldToLocalMatrix * transform.localToWorldMatrix;
            }
            else
            {
                l2sTransform = transform.localToWorldMatrix;
            }

            Vector4 force = l2sTransform.MultiplyVector(Vector3.forward * (intensity + GetTurbulence(turbulence)));

            if (actor.UsesCustomExternalForces)
            {
                Oni.AddParticleWind(actor.Solver.OniSolver, ref force, actor.particleIndices, actor.particleIndices.Length);
            }
            else
            {
                Oni.AddParticleExternalForce(actor.Solver.OniSolver, ref force, actor.particleIndices, actor.particleIndices.Length);
            }
        }