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; } } }
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); }