unity之种植蔬菜

来源:互联网 发布:redis数据库查询 编辑:程序博客网 时间:2024/04/26 18:09

今天的内容



使用射线来种植蔬菜,并且在生成蔬菜后给予种植成功提示,提示在秒后消失。


通过定义一个射线投射碰撞来得出蔬菜的克隆位置,当碰撞发生时在鼠标点击位置克隆蔬菜。


种植成功后给予的提示:

这里使用guitext来实现 并用倒计时和bool型标志位来判断鼠标点击事件,当发生投射碰撞时将flag赋值为true 否知为false,提示判断为当flagtrue时给予成功提示,否则不给提示


 public Transform cabbage; //预设体  

 

       public GUIText t;

 

       bool flag1 = false; //标志位

 

       float a = 1f; 倒计时时间

 

       void Start()

       {

          t.enabled = false;//t初始值为空

       }

       void Update()

       {

               if (Input.GetMouseButtonDown(0)) //鼠标点击

               {

 

                   Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);//定义射线

                   RaycastHit hit;

 

                   if (Physics.Raycast(ray, out hit, 1000)) //如果发生碰撞

                   {

                  cabbage = Instantiate(cabbage, hit.point, Quaternion.identity) as Transform;

                       flag1 = true;

                       a = 2f;//时间重置

                   }

               }

               else

               {

 

                   a -= Time.deltaTime;//倒计时            

                   if (a <= 0 && a > -0.1) 

                   {

                       flag1 = false; 

                   }

                  

               }

               if (flag1)//提示当flagtrue

               {

                   t.color = Color.red;

                   t.fontSize = 30;

                   t.text = "*种植成功*";

               }

               else { 

                   t.guiText.text = " "; 

               }

          }


访问自定义组件

      访问自定义组件或脚本。
      
      访问自身游戏对象上的自定义组件(脚本)中的内容
      Test  t=GameObject.Find("Cube").GetComponent<Test >();
 
          访问其他游戏对象上的脚本的内容
           Test4 tt =cube .GetComponent <Test4 >();


更多精彩请点击:http://www.gopedu.com/
0 0