Esempio n. 1
0
    public void makeCloud()
    {
        var data = new TC.PointCloudData();

        data.Initialize(cloud.pPosition, cloud.pNormals, cloud.pColours, 1, new Vector3(), new Vector3());
        data.name = CloudName;


        var system = gameObject.AddComponent <TCParticleSystem>();

        system.Emitter.Shape      = EmitShapes.PointCloud;
        system.Emitter.PointCloud = data;
        system.Emitter.SetBursts(new[] { new BurstEmission {
                                             Time = 0, Amount = data.PointCount
                                         } });
        system.Emitter.EmissionRate = 0;
        system.Emitter.Lifetime     = MinMaxRandom.Constant(-1.0f);
        system.Looping              = false;
        system.MaxParticles         = data.PointCount + 1000;
        system.Emitter.Size         = MinMaxRandom.Constant(cloud.cloudInfo.minVoxelSize);
        system.Manager.NoSimulation = true;

        if (data.Normals != null)
        {
            system.ParticleRenderer.pointCloudNormals = true;
            system.ParticleRenderer.RenderMode        = GeometryRenderMode.Mesh;

            var quadGo = GameObject.CreatePrimitive(PrimitiveType.Quad);
            system.ParticleRenderer.Mesh = quadGo.GetComponent <MeshFilter>().sharedMesh;
            DestroyImmediate(quadGo);
        }

        system.enabled = true;
    }
Esempio n. 2
0
    public override void OnImportAsset(AssetImportContext context)
    {
        // ComputeBuffer container
        // Create a prefab with PointCloudRenderer.
        var gameObject = new GameObject();
        var data       = ImportAsPointCloudData(context.assetPath);

        if (data == null)
        {
            Debug.LogError("data is null... importing didnt work...");
        }

        var system = gameObject.AddComponent <TCParticleSystem>();

        system.Emitter.Shape      = EmitShapes.PointCloud;
        system.Emitter.PointCloud = data;
        system.Emitter.SetBursts(new[] { new BurstEmission {
                                             Time = 0, Amount = data.PointCount
                                         } });
        system.Emitter.EmissionRate = 0;
        system.Emitter.Lifetime     = MinMaxRandom.Constant(-1.0f);
        system.Looping              = false;
        system.MaxParticles         = data.PointCount + 1000;
        system.Emitter.Size         = MinMaxRandom.Constant(DefaultPointSize);
        system.Manager.NoSimulation = true;

        if (data.Normals != null)
        {
            system.ParticleRenderer.pointCloudNormals = true;
            system.ParticleRenderer.RenderMode        = GeometryRenderMode.Mesh;

            var quadGo = GameObject.CreatePrimitive(PrimitiveType.Quad);
            system.ParticleRenderer.Mesh = quadGo.GetComponent <MeshFilter>().sharedMesh;
            DestroyImmediate(quadGo);
        }

        context.AddObjectToAsset("prefab", gameObject);
        if (data != null)
        {
            context.AddObjectToAsset("data", data);
        }

        context.SetMainObject(gameObject);
    }
Esempio n. 3
0
 public FireDamage(Weapon next, string name, int cost, MinMaxRandom effect)
     : base(next, name, cost, effect)
 {
 }
Esempio n. 4
0
 public Armour(string name, int cost, MinMaxRandom effect, string material) : base(name, cost, effect)
 {
     Material = material;
 }
Esempio n. 5
0
 public DamageMultiplier(Weapon next, string name, int cost, MinMaxRandom effect)
     : base(next, name, cost, effect)
 {
 }
 public Potion(string name, int cost, MinMaxRandom effect, PotionType type) : base(name, cost, effect)
 {
     Type = type;
 }
Esempio n. 7
0
 public WeaponImpl(string name, int cost,
                   MinMaxRandom effect, string type, string damageType)
     : base(name, cost, effect, type, damageType)
 {
 }
 public Weapon(string name, int cost, MinMaxRandom effect, string type, string damageType) : base(name, cost, effect)
 {
     Type       = type;
     DamageType = damageType;
 }