前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Unity3D基础项目(一):打箱子升级版之豪华特效

Unity3D基础项目(一):打箱子升级版之豪华特效

作者头像
孙寅
发布2020-06-02 17:05:15
8850
发布2020-06-02 17:05:15
举报
文章被收录于专栏:宜达数字宜达数字

最终效果图

半成品效果图:

cube.gif

1、开始阶段,场景搭建,资源导入

场景搭建

加群获取资源

2、添加第一个脚本,创建我们要打击的墙体
代码语言:javascript
复制
public class CreatBox : MonoBehaviour {
 void Start () {
   for (int i = 0; i < x; i++) // 控制横排为X
  {
    for (int j = 0; j < y; j++) // 控制竖排为Y, 当横排为0时,垂直方块个数为8个
    {
         GameObject box = GameObject.CreatePrimitive(PrimitiveType.Cube);
         box.transform.position = new Vector3(-4.0f + i, 0.5f + j, 4);
         box.GetComponent<Renderer>().material.color = new Color(Random.Range(0f, 1f), Random.Range(0f, 1f), Random.Range(0f, 1f));
         Rigidbody r =  box.AddComponent<Rigidbody>();
         //r.mass = 10;
         box.tag = "Box";
       } 
    }
  }
}
3、实例化子弹

这里有两种方式一种,通过预制物,一种通过动态加载内置物

Paste_Image.png

4、销毁子弹脚本

我们的子弹可能创建无数个,所以为了性能,要及时销毁。

Paste_Image.png

5、子弹特效

Paste_Image.png

6、画瞄准镜

如何画一个瞄准镜

代码语言:javascript
复制
    private void OnGUI()
    {
        // 对于一张图片定位只需要在屏幕确定两个位置
        /******************************
         *           |   距离顶部多少  *
         *---------******             *    
         *---左边 --| 图 |             *
         *---多少 --| 片 |             *
         *         ******              *
         *                             *
         *****************************
         同时拿到图片的宽度和高度就能够显示了在我们的屏幕上了   
                
         注意:要确保鼠标在图片的中心点,即宽度与高度的一半  
         */
        float left = Input.mousePosition.x - pic.width / 2;
        float top = Screen.height - Input.mousePosition.y - pic.height / 2;
        GUI.DrawTexture(new Rect(left,top,pic.width,pic.height), pic);   
    }
7、力度控制

力度

创建子弹

代码语言:javascript
复制
// 创建子弹(通过内置物,就是系统内置的基本3D类型)
 GameObject bullet = GameObject.CreatePrimitive(PrimitiveType.Sphere);
//bullet.transform.position = this.transform.position;
bullet.transform.position = Camera.main.transform.position;
bullet.transform.localScale = new Vector3(0.2f, 0.2f, 0.2f);

// 给实例化出来的子弹添加脚本
bullet.AddComponent<bulletDestroy>();
// 给子弹添加特效
bullet.AddComponent<BulletEffic>();
// 发射子弹(要有冲击力,那就需要刚体组件)
Rigidbody r = bullet.AddComponent<Rigidbody>();

 r.AddForce((hit.point - transform.position) * FourcePower, ForceMode.Impulse);

如何调整力度?

力度调整

8、最终效果图:

Paste_Image.png

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1、开始阶段,场景搭建,资源导入
  • 2、添加第一个脚本,创建我们要打击的墙体
  • 3、实例化子弹
  • 4、销毁子弹脚本
  • 5、子弹特效
  • 6、画瞄准镜
  • 7、力度控制
  • 8、最终效果图:
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档