Unity3D开发类似保龄球游戏

简介: 先学习一些基本的脚本实现: 1.动态创建物体.默认位置是(0,0)位置 GameObject goNew = GameObject.CreatePrimitive(PrimitiveType.

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

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


相关文章
|
4月前
|
图形学
【Unity3D开发小游戏】Unity3D零基础一步一步教你制作跑酷类游戏
【Unity3D开发小游戏】Unity3D零基础一步一步教你制作跑酷类游戏
|
10月前
|
存储 图形学 Android开发
【游戏开发】使用unity创建2D游戏
Unity是一种非常强大的游戏引擎,可以帮助你创建各种类型的游戏,包括2D游戏。在本文中,我们将教你如何使用Unity创建2D游戏。首先,你需要确保你已经下载并安装了最新版本的Unity。如果你还没有安装Unity,可以从官方网站下载免费的Unity Hub来管理你的Unity版本。
388 0
|
前端开发 定位技术 图形学
Unity3D制作塔防类游戏
Unity3D制作塔防类游戏
Unity3D制作塔防类游戏
|
程序员 图形学 开发者
Unity 之游戏特效
Unity 之游戏特效
240 0
Unity 之游戏特效
|
图形学
Unity实现2D小游戏
Unity实现2D小游戏FirstGame2D(Sunny Land) 一、游戏说明 本游戏为作者的第一个实验的2D小游戏 实现效果: (1)简单的UI界面以及触发按钮、滑动按钮事件 (2)通过按钮与按键实现场景的切换 (3)通过代码实现动画效果的切换(跳跃、蹲下等) (4)碰撞体以及触发器实现消灭敌人、收集物品、地面检测 (5)相机场景与背景运动差,实现场景与人物的立体效果,达到较好的视觉效果 (6)SoundMananger实现场景音乐的管理
188 0
Unity实现2D小游戏
|
图形学
Unity3D教程:回合制游戏实现
一、场景布置 首先是简单的场景布置,在3D部分很简单。就几个简单的基本组件,在一个Plane上面放2个Cube,并且上不同颜色的纯色Material。唯一需要大家注意的是,请将两个Cube改好名,以免到时候编程不知道哪个跟哪个。
1636 0
|
vr&ar 图形学 开发者
在Unity中使用UFPS创建第一人称射击游戏
UFPS,即 Ultimate FPS,是由Opsive(FPS) 开发的模板项目,这个项目对初级或中级开发者来说是必不可少的,因为它可以帮助您提高FPS游戏运行效率。它是Unity Asset Store中维护时间最长的资源之一, 在整个生命周期中,得到了来自开发者的诸多好评。
1492 0
|
图形学
Unity3D游戏引擎为何能让游戏发烧友如此痴狂
前景好——高薪行业里的天生贵族学习Unity3d很多人都是冲着游戏开发工程师的目标而来。目前游戏逐渐占领大众娱乐市场,整个行业结构正在发生翻天覆地的变化。游戏产业作为一个新兴产业,从初期形成到现如今的快速发展并迅速走向成熟时期,游戏行业已经成为文化娱乐产业、网络经济的重要组成部分,成为所有行业中发展前景最好的朝阳产业。
1212 0
|
图形学
unity案例入门(拾取游戏)
案例简述这个案例实现一个非常简单的拾取宝物游戏,主角是一个小球,玩家通过键盘控制小球拾取全部宝物。 键盘控制物体移动 Rigidbody rd;public int force = 10; void Start () {rd = GetComponent ();//获得物体的刚体组件}void Update () {float h = Input.
1558 0
|
图形学
Unity 3D游戏-塔防类游戏源码:重要方法和功能的实现
Unity-塔防游戏源码 本文提供全流程,中文翻译。Chinar坚持将简单的生活方式,带给世人!(拥有更好的阅读体验 —— 高分辨率用户请根据需求调整网页缩放比例) ...
1849 0