unity克隆抛物线型金币的方法

来源:互联网 发布:fx网络什么意思 编辑:程序博客网 时间:2024/05/14 23:18

1、准备好我们要克隆的对象:金币

[csharp] view plain copy
 print?
  1. public GameObject coin;  

2、计算出抛物线的函数并按照函数算出克隆的位置:


[csharp] view plain copy
 print?
  1. /// <summary>  
  2.     /// 克隆抛物线型金币的方法  
  3.     /// </summary>  
  4.     /// <param name="pos">克隆第一个金币的位置</param>  
  5.     /// <param name="num">克隆金币数量</param>  
  6.     /// <param name="spacing">两两金币间的距离</param>  
  7.     void LoadCoinMethod(Vector3 pos,int num,float spacing)  
  8.     {  
  9.         Vector2 inityz = new Vector2(pos.z, pos.y);//记录抛物线第一个金币位置  
  10.         float sysmmetryAxis = inityz.x + (num / 2 + ((num % 2 == 0) ? 0.5f : 1)) * spacing;//计算抛物线对称轴  
  11.         float hight = inityz.y + Mathf.Pow((pos.z + spacing - sysmmetryAxis), 2) / num;//抛物线的零次参数  
  12.         for (int i = 0; i < num; i++)  
  13.         {  
  14.             pos.z += spacing;  
  15.             pos.y = hight - Mathf.Pow((pos.z - sysmmetryAxis), 2) / num;  
  16.             GameObject tempcoin = (GameObject)Instantiate(coin,pos,Quaternion.identity);  
  17.               
  18.         }  
  19.     }  

3、查看效果图(num = 15,spacing = 1.2f):




0
0 0