public void GrowFlowerOn(PetalInfo info) { // Debug.Log("Land Grow FLower on " + name ); if (!isGrowedGrass) { int count = (int )(grassTopOffset.x * density); for (int k = 0; k < count;) { Vector3 ranPos = transform.position + new Vector3(Random.Range(-grassTopOffset.x / 2f, grassTopOffset.x / 2f) , grassTopOffset.y, 0); RaycastHit hit; if (Physics.Raycast(ranPos, Vector3.down, out hit, 5f)) { if (hit.collider.gameObject == this.gameObject) { float delay = delayCurve.Evaluate((info.position - hit.point).magnitude); StartCoroutine(GrowGrassOn(hit.point, hit.normal, delay)); } k++; } } isGrowedGrass = true; } }
void OnGrowFlowerOn(Message msg) { PetalInfo info = (PetalInfo)msg.GetMessage("info"); if (info.parent.gameObject == this.gameObject) { GrowFlowerOn(info); } }
void GrowFlowerOn(Message msg) { PetalInfo info = (PetalInfo)msg.GetMessage("info"); if (info.affectPointArea == this) { Disappear(); } }
public void GrowFlowerOn(PetalInfo info) { // Debug.Log("Land Grow FLower on " + name ); if ( !isGrowedGrass ) { int count = (int ) (grassTopOffset.x * density); for ( int k = 0 ; k < count ; ) { Vector3 ranPos = transform.position + new Vector3( Random.Range( - grassTopOffset.x / 2f , grassTopOffset.x / 2f ) , grassTopOffset.y , 0 ); RaycastHit hit; if( Physics.Raycast( ranPos , Vector3.down , out hit , 5f ) ) { if ( hit.collider.gameObject == this.gameObject ) { float delay = delayCurve.Evaluate( (info.position - hit.point ).magnitude ); StartCoroutine( GrowGrassOn( hit.point , hit.normal, delay)); } k++; } } isGrowedGrass = true; } }
void OnOthersGrowFlower(Message msg) { PetalInfo info = (PetalInfo)msg.GetMessage("info"); flowerGrowInfoList.Add(info); }