Unity3D开发类似保龄球游戏

先学习一些基本的脚本实现:

1.动态创建物体.默认位置是(0,0)位置

GameObject goNew = GameObject.CreatePrimitive(PrimitiveType.Cube);
//创建的位置

goNew.transform.position = new Vector3(0, 0, -2);

 goNew.AddComponent<Rigidbody>();//添加刚体组件,是一种泛型

2.判断用户是否按下鼠标左键

if(Inut.GetMouseButtonDown(0))

3.按下鼠标左键,给它一个往前的脉冲力,forward就是一个默认长度为1的单位向量

this.gameObject.rigidbody.AddForce(Vector3.forward * 50, ForceMode.Impulse);

4.给当前物体添加一个往鼠标点击的方向的多大的力,它就会往那个方向去走

 //点击目标然后从摄像机的位置发射出一个小球,这里要计算力的方向向量

 Vector3 targetPos = Camera.main.ScreenToWorldPoint(new Vector3(Input.mousePosition.x, Input.mousePosition.y, 3));
Vector3 dir = targetPos - Camera.main.transform.position;
//给当前的物体添加某个方向的力
this.gameObject.rigidbody.AddForce(dir * 5,ForceMode.Impulse);

5.点击鼠标生成对象
if (Input.GetMouseButtonDown(0))
{
     GameObject goNew = GameObject.CreatePrimitive(PrimitiveType.Sphere);
     goNew.transform.position = new Vector3(0, 0, 0);
      goNew.AddComponent<Rigidbody>();
}

6.对象销毁回收内存
if (Input.GetMouseButtonDown(0))
{
      GameObject s1 = GameObject.Find("Sphere");//相当于document.getElementById();
       Destroy(s1,2); //延时2秒销毁对象
}

制作游戏:

using UnityEngine;
using System.Collections;

public class gameText : MonoBehaviour {

    private GameObject goPlane;

// Use this for initialization
void Start () {
        //找到地形对象
        goPlane = GameObject.Find("Plane");

        //创建4*4的cube
        for (int i = 0; i < 4; i++)
        {
            for (int j = 0; j < 4; j++)
            {
                GameObject go = GameObject.CreatePrimitive(PrimitiveType.Cube);
                go.transform.position = new Vector3(i, j, -1);
                go.AddComponent<Rigidbody>();
                go.AddComponent<AutoDistory>();//相当于实例化一个脚本销毁对象的一个类然后挂到每个对象中,让他不可见的时候自行销毁
            }
        }
}

// Update is called once per frame
void Update () {
        if (Input.GetMouseButtonDown(0))
        {
            //创建子弹的object
            GameObject goBullet = GameObject.CreatePrimitive(PrimitiveType.Sphere);
            goBullet.transform.position = Camera.main.transform.position;
            goBullet.AddComponent<Rigidbody>();
            //让对象不可见的时候自行销毁
            goBullet.AddComponent<AutoDistory>();
            
            //获取到这个对象的多有资源,在发射的时候播放一个音乐
            goPlane.GetComponent<AudioSource>().Play();

            //点击鼠标,从摄像机的位置开始发射小球
            Vector3 targetPos = Camera.main.ScreenToWorldPoint(new Vector3(Input.mousePosition.x, Input.mousePosition.y, 3));
            goBullet.rigidbody.AddForce((targetPos - Camera.main.transform.position) * 20, ForceMode.Impulse);
            
        }

}
    void OnGUI()
        {
            string s = "作者:丁小未";
            GUIStyle bb = new GUIStyle();
            bb.normal.background = null;//设置背景
            bb.normal.textColor = new Color(1,0,0);//设置颜色
            bb.fontSize = 40;
            GUI.Label(new Rect(40, 10, 100, 50), s, bb);
  
        }
}

AutoDistory脚本:

using UnityEngine;
using System.Collections;

//当东西不可见的时候就让他自动销毁
public class AutoDistory : MonoBehaviour {

// Use this for initialization
void Start () {
}

// Update is called once per frame
void Update () {
}

    void OnBecameInvisible()
    {
        Destroy(this.gameObject);
    }
}

其他提示:

1.天空盒的导入,提醒不要全部导入,不然文件会很大,应用是点击Edit-》Render Setting,然后导入天空盒

2.音频文件是在Camera上添加Component->Audio->Audio Sourse,他自动附带的Audio Listenner

详细项目源码:http://download.csdn.net/my

==================== 迂者 丁小未 CSDN博客专栏=================

MyBlog:http://blog.csdn.net/dingxiaowei2013             MyQQ:1213250243

Unity QQ群:858550         cocos2dx QQ群:280818155

====================== 相互学习,共同进步 ===================

 

转载请注明出处:http://blog.csdn.net/dingxiaowei2013/article/details/9734935

欢迎关注我的微博:http://weibo.com/u/2590571922

时间: 2024-11-01 12:03:35

Unity3D开发类似保龄球游戏的相关文章

安卓开发-安卓手机游戏开发用什么游戏引擎

问题描述 安卓手机游戏开发用什么游戏引擎 想学安卓游戏开发,想问问现在安卓开发用什么游戏引擎,大型的预习也是java代码吗??还有网游呢???untiy3d只能是c#吗???cocos2d呢??真心求知道谢谢....没有开发过游戏,请调教 我现在在java web公司上班 没怎么解除新鲜的实物 请大家帮忙 想做一个小型的角色扮演类网游,学习一下.看点什么资料好呢 解决方案 cocos2d是最流行的 解决方案二: 开发Android游戏的引擎有很多,比如 cocos2d.AndEngine.Uni

开发类似微软中国导航条的控件

导航|控件|微软 开发类似微软中国导航条的控件-ios 导航条上添加控件"> 比较好看吧.根据书上例子自己写了一下,用VS2005写,特别方便,代码如下 using System; using System.ComponentModel; using System.Web.UI; using System.Web.UI.WebControls; using System.Drawing; namespace ClingingBoy {  [DefaultProperty("tex

类似QQ游戏大厅导航的树型控件

在最近的项目中,需要实现一个类似QQ游戏大厅导航树型控件.参考了网络上的部分资料,自己动手制作了一个类CTreeCtrlBT.其界面如下: 实现步骤 第一步:新建一个基于对话框的MFC工程,拖动一棵标准树型控件放于界面之上.添加一个新类CTreeCtrlBT派生自CTreeCtrl. 第二步:为该类添加一些消息响应以及虚函数.其详细作用如下: void PreSubclassWindow(); //用于添加初始化控件的相关信息 WM_SIZE //控件区域发生变化时候的处理 WM_PAINT /

arcgis engine开发类似arcmap的功能

问题描述 arcgis engine开发类似arcmap的功能 怎样在arcgis engine中开发类似arcmap中新建shapefile的功能..

微信公众平台开发实现2048游戏的方法_php实例

本文实例讲述了微信公众平台开发实现2048游戏的方法.分享给大家供大家参考.具体如下: 一.2048游戏概述 <2048>是比较流行的一款数字游戏.原版2048首先在github上发布,原作者是Gabriele Cirulli.它是基于<1024>和<小3传奇>的玩法开发而成的新型数字游戏 . 随后2048便出现各种版本,走各大平台.由Ketchapp公司移植到IOS的版本最为火热,现在约有1000万下载,其名字跟原版一模一样.衍生版中最出名的是<2048六边形&

listview-安卓开发类似小米文件管理器路径界面

问题描述 安卓开发类似小米文件管理器路径界面 小米文件管理器在listview上有个路径框,每点击一次文件夹这个文件夹的名字就保存到路径框里,有多个路径框会隐藏前面的显示最新点击的文件夹名,点击每个文件夹名字会跳转到相应目录.这是怎么实现的,求教. 解决方案 http://www.javaapk.com/source/8341.html 解决方案二: 暂时没小米手机,发个效果图看看

非技术-现在开发一个新游戏,应该先做iOS版还是Android版?

问题描述 现在开发一个新游戏,应该先做iOS版还是Android版? 之前一直觉得是从iOS版开始,但是最近听到几个朋友说iOS审核慢,刷榜厉害,而且用户数也远不如Android了.大家怎么看? 解决方案 重要的是看技术(开发哪个更容易),周期更短.更有app store推广经验若游戏成熟,两个最终都要做的,目前这态势,看你定位了,不然暂不用考虑用户数问题 解决方案二: 我基本是根据利益获取模式,如果是想App收费,会先做iOS的,如果是道具收费.免费,就根据开发的情况来定.2个平台都会做,但是

本菜,想知道如何开发一款游戏引擎

问题描述 本菜,想知道如何开发一款游戏引擎 如题,尽可能详细点. 是需要directx jdk,还是自己写jdk? 解决方案 参考:http://www.zhihu.com/question/24616737 解决方案二: http://blog.csdn.net/pizi0475/article/details/49591683

安卓游戏-开发安卓2D游戏用AndEngine好还是JBOX2D好?

问题描述 开发安卓2D游戏用AndEngine好还是JBOX2D好? 全靠兴趣自学JAVA和安卓没多久,现在准备跟同学一块做2D游戏,我们想用引擎开发,请问用AndEngine好还是单纯的用JBOX2D好,这两个都学了一些,哪个适合初学者呢? 解决方案 JBOX2D没用过,AndEngine挺不错的,虽然文档少,但是有官方的demo,还有一本书叫andengine cook book,看完之后就基本上手了 http://ygydaiaq-gmail-com.iteye.com/blog/1843