Esempio n. 1
0
    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;
        }
    }
Esempio n. 2
0
    void OnGrowFlowerOn(Message msg)
    {
        PetalInfo info = (PetalInfo)msg.GetMessage("info");

        if (info.parent.gameObject == this.gameObject)
        {
            GrowFlowerOn(info);
        }
    }
Esempio n. 3
0
    void GrowFlowerOn(Message msg)
    {
        PetalInfo info = (PetalInfo)msg.GetMessage("info");

        if (info.affectPointArea == this)
        {
            Disappear();
        }
    }
Esempio n. 4
0
	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;
		}

	}
Esempio n. 5
0
    void OnOthersGrowFlower(Message msg)
    {
        PetalInfo info = (PetalInfo)msg.GetMessage("info");

        flowerGrowInfoList.Add(info);
    }