コード例 #1
0
 void Remove()
 {
     Simulation.active.RemoveRuntimeCondition(condition);
     condition = null;
     isRunning = false;
     addOrRemoveButton.text = "Add";
 }
コード例 #2
0
        public override TreeBaseNode WalkGraphToCreateTree(BehaviourTree.BehaviourTree tree, Context currentContext)
        {
            RuntimeCondition brtc =
                new RuntimeCondition(conditionalSelector, tree.owner);

            TreeConditionNode node = new TreeConditionNode(tree, currentContext)
            {
                runtimeCondition = brtc
            };

            return(WalkDecoratorNode(tree, node));
        }
コード例 #3
0
    public void RemoveRuntimeCondition(RuntimeCondition condition)
    {
        positions     = NativeArrayUtils.RemoveRange(positions, condition.startIndex, condition.numberOfParticles);
        positionsCopy = NativeArrayUtils.RemoveRange(positionsCopy, condition.startIndex, condition.numberOfParticles);
        velocities    = NativeArrayUtils.RemoveRange(velocities, condition.startIndex, condition.numberOfParticles);
        masses        = NativeArrayUtils.RemoveRange(masses, condition.startIndex, condition.numberOfParticles);
        particles     = NativeArrayUtils.RemoveRange(particles, condition.startIndex, condition.numberOfParticles);

        nTotal -= condition.numberOfParticles;
        pSystem.SetParticles(particles, nTotal);

        int conditionIndex = runtimeConditionsSet.IndexOf(condition);

        for (int i = conditionIndex + 1; i < runtimeConditionsSet.Count; i++)
        {
            runtimeConditionsSet[i].startIndex -= condition.numberOfParticles;
        }

        runtimeConditionsSet.Remove(condition);
    }
コード例 #4
0
    void Add()
    {
        List <InitialCondition> initialConditions = new List <InitialCondition>
        {
            new InitialCondition
            {
                numberOfParticles  = InputFieldToInt(numberOfParticles),
                center             = new float3(InputFieldToFloat(centerX), InputFieldToFloat(centerY), InputFieldToFloat(centerZ)),
                radius             = InputFieldToFloat(radius),
                shapeElipsoid      = new float3(InputFieldToFloat(shapeElipsoidX), InputFieldToFloat(shapeElipsoidY), InputFieldToFloat(shapeElipsoidZ)),
                turbulenceStrength = InputFieldToFloat(turbulenceStrength),
                turbulenceElipsoid = new float3(InputFieldToFloat(turbulenceElipsoidX), InputFieldToFloat(turbulenceElipsoidY), InputFieldToFloat(turbulenceElipsoidZ)),
                angularVelocity    = InputFieldToFloat(angularVelocity),
                seed = InputFieldToInt(seed)
            }
        };

        Simulation.active.AddInitialConditions(initialConditions);
        condition = Simulation.active.runtimeConditionsSet[Simulation.active.runtimeConditionsSet.Count - 1];

        isRunning = true;
        addOrRemoveButton.text = "Remove";
    }