Exemple #1
0
 private void DrawDebugs()
 {
     if (bDrawParticles)
     {
         for (int pi = 0; pi < pNum; pi++)
         {
             PHOpParticleDesc dp = opPtcls[pi];
             particles[pi].transform.position  = new Vector3(dp.pCurrCtr.x, dp.pCurrCtr.y, -dp.pCurrCtr.z);
             particles[pi].transform.position += gameObject.transform.position;
         }
     }
 }
Exemple #2
0
    private void Initial()
    {
        particles = new List <GameObject>();
        opObjIf.SetGravity(bGravity);

        //initial OpObj & collision detection
        initialObj();
        initialCollision();

        copySize  = opObjIf.GetVertexNum() * 3;
        dataArray = new float[copySize];
        opObjAddr = new PHOpObjDesc(opObjIf.GetDescAddress());

        Time.fixedDeltaTime = 0.01f;

        pNum    = opObjAddr.assPsNum;
        gNum    = opObjAddr.assGrpNum;
        opPtcls = new PHOpParticleDesc[pNum];
        opGrps  = new PHOpGroupDesc[gNum];

        //initial local op particles and groups
        for (int pi = 0; pi < pNum; pi++)
        {
            opPtcls[pi] = new PHOpParticleDesc(opObjIf.GetOpParticle(pi).GetDescAddress());
        }
        for (int gi = 0; gi < pNum; gi++)
        {
            opGrps[gi] = new PHOpGroupDesc(opObjIf.GetOpGroup(gi).GetDescAddress());
        }

        for (int pi = 0; pi < pNum; pi++)
        {
            GameObject sphere = GameObject.CreatePrimitive(PrimitiveType.Sphere);
            sphere.SetActive(false);
            sphere.name = "Obj_" + objid + " Ptcl_" + pi;
            //sphere.tag = "OpParticle";
            float radius = opObjAddr.objAverRadius;
            sphere.transform.localScale = new Vector3(radius, radius, radius);

            sphere.transform.SetParent(gameObject.GetComponentInParent <PHSceneBehaviour> ().transform);
            particles.Add(sphere);
        }


        vNconst = vNum;
        gNconst = gNum;
        pNconst = pNum;

        print("obj: " + objid + " vNum: " + vNum + " pNum: " + pNum);
    }