查看: 1064|回复: 1
打印 上一主题 下一主题

[其他] 编辑器自动生成Cube墙 - 小球打墙

[复制链接]

9903

主题

126

听众

7万

积分

首席设计师

Rank: 8Rank: 8

纳金币
53488
精华
316

最佳新人 热心会员 灌水之王 活跃会员 突出贡献 荣誉管理 论坛元老

跳转到指定楼层
楼主
发表于 2015-5-30 02:50:44 |只看该作者 |倒序浏览
  1. using UnityEngine;
  2. using System.Collections;
  3. using UnityEditor;
  4. public class MyWallBall : EditorWindow
  5. {

  6.     public int row;
  7.     public int line;

  8.     public GameObject cube;
  9.     public GameObject plane;
  10.     public GameObject sqhere;

  11.     public float Spead = 5;




  12.     [MenuItem("My Editor/My WallBall")]
  13.     static void Init()
  14.     {
  15.         EditorWindow.GetWindow(typeof(MyWallBall));

  16.     }

  17.     void OnGUI()
  18.     {
  19.         EditorGUILayout.BeginHorizontal();
  20.         EditorGUILayout.LabelField("Line");
  21.         line = EditorGUILayout.IntField(line);
  22.         EditorGUILayout.EndHorizontal();

  23.         EditorGUILayout.BeginHorizontal();
  24.         EditorGUILayout.LabelField("Row");
  25.         row = EditorGUILayout.IntField(row);
  26.         EditorGUILayout.EndHorizontal();

  27.         EditorGUILayout.BeginHorizontal();
  28.         EditorGUILayout.LabelField("Object");
  29.         cube = EditorGUILayout.ObjectField(cube, typeof(GameObject)) as GameObject;
  30.         EditorGUILayout.EndHorizontal();


  31.         if (GUILayout.Button("Create Wall"))
  32.         {
  33.             cube = GameObject.CreatePrimitive(PrimitiveType.Cube);

  34.             plane = GameObject.CreatePrimitive(PrimitiveType.Plane);
  35.             plane.transform.position += new Vector3(0, -0.5f, 0);
  36.             plane.transform.localScale += new Vector3(10, 0, 10);

  37.             cube.AddComponent<Rigidbody>();
  38.             for (int i = 0; i < line; i++)
  39.             {
  40.                 for (int j = 0; j < row; j++)
  41.                 {
  42.                     if (i == 0 && j == 0)
  43.                     {
  44.                         continue;
  45.                     }
  46.                     float r = Random.Range(0f, 1f);
  47.                     float g = Random.Range(0f, 1f);
  48.                     float b = Random.Range(0f, 1f);
  49.                     Color color=new Color(r,g,b);

  50.                     GameObject cub = Instantiate(cube, new Vector3(j, i, 0), Quaternion.identity) as GameObject;
  51.                     cub.gameObject.renderer.material.color = color;

  52.                 }

  53.             }
  54.         }
  55.         if (GUILayout.Button("shoot"))
  56.         {
  57.             sqhere = GameObject.CreatePrimitive(PrimitiveType.Sphere);
  58.             sqhere.transform.localScale -= new Vector3(0.5f, 0.5f, 0.5f);
  59.             sqhere.transform.position -= new Vector3(0, 50, 0);
  60.             sqhere.AddComponent<Rigidbody>();
  61.    
  62.            
  63.         }
  64.     }
  65.     void Update()
  66.     {

  67.       
  68.         Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
  69.         Vector3 pos = ray.GetPoint(100f);
  70.       
  71.         if (Input.GetMouseButtonDown(0))
  72.         {
  73.             GameObject rg = Instantiate(sqhere, ray.origin, Quaternion.identity) as GameObject;
  74.             rg.rigidbody.AddForce(pos.normalized * 2000f);
  75.             Destroy(rg.gameObject, 2f);
  76.         }
  77.     }
  78. }
复制代码
分享到: QQ好友和群QQ好友和群 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
转播转播0 分享淘帖0 收藏收藏0 支持支持0 反对反对0
回复

使用道具 举报

1

主题

1

听众

169

积分

设计实习生

Rank: 2

纳金币
25
精华
0
沙发
发表于 2016-12-15 18:10:56 |只看该作者
棒!我也在做打墙游戏
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

手机版|纳金网 ( 闽ICP备2021016425号-2/3

GMT+8, 2024-11-19 04:46 , Processed in 0.185177 second(s), 28 queries .

Powered by Discuz!-创意设计 X2.5

© 2008-2019 Narkii Inc.

回顶部