精华内容
下载资源
问答
  • unity小游戏

    2018-02-03 22:03:49
    unity小游戏!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
  • Unity小游戏

    2019-10-24 18:51:32
    偶尔抽一点闲暇时间,写点小游戏,记录一下: 贪吃蛇

    偶尔抽一点闲暇时间,写点小游戏,记录一下:

    贪吃蛇

    展开全文
  • Unity小游戏-扫雷

    2021-02-20 10:47:19
    Unity小游戏-扫雷
  • Unity 小游戏:井字棋

    千次阅读 2017-03-06 11:09:15
    Unity 小游戏:井字棋 Unity 小游戏井字棋 准备资源 布置场景 编辑脚本

    Unity 小游戏:井字棋

    学习了Unity3D的基本操作,实现简单的井字棋游戏

    1. 准备资源

    游戏中包含棋盘和棋子两种游戏物体,棋盘是一个九宫格,棋子分为红蓝两种颜色,下图是棋子和棋盘的Texture,图片比较简单,可以直接用电脑上的画图制作。
    棋子和棋盘的纹理
    用所准备的纹理制作相应的material,如下图所示
    棋子和棋盘的材质
    然后就可以用准备好的material制作棋子和棋盘了,在这里,我把棋子作为预制物体,而棋盘则不需要。因为在游戏中,棋盘只有一个,不需要做任何变化;而棋子是有很多个的,而且在重新开始新游戏时,需要销毁旧的棋子。做好的棋子预制物体如下,需要放到名为prefabs的文件夹中
    棋子的预制

    2. 布置场景

    接下来就可以布置游戏的场景了。当我们建立一个新的项目时,游戏场景中已经有了Main CameraDirectional Light,因此我们只需要制作一个棋盘就可以了。为了方便检测鼠标点击位置,棋盘由九个独立的Cube组成,按照顺序摆放在一起,让Main Camera正对着棋盘,就可以了!
    布置好的游戏场景

    3. 编辑脚本

    接下来就是游戏最重要的部分了,在游戏的脚本中,将实现棋子的放置,输赢的判断等功能。下面是我的代码的思路流程图:

    Created with Raphaël 2.1.0游戏开始初始化双方依次落子是否重置?一方输赢?游戏结束yesnoyesno

    start函数与reset函数

        void Start () {
            reset ();   //初始化
        }
    
        void reset () {     //初始化函数
            if (re) {
                iswin = false;
                for (int i = 1; i < 10; i++)
                    GameObject.Find ("Cube (" + i + ")").tag = "Untagged";      //将每个棋盘格子的tag设置为Untagged
                qizis = GameObject.FindGameObjectsWithTag ("qizi");     //寻找所有棋子
                foreach (GameObject qizi in qizis) {
                    Destroy (qizi);     //逐个删除棋子
                }
                re = false;
            }
        }

    update函数与put函数,在每个update中执行put,检测鼠标点击的棋盘位置,并且判断是否能够落子。

        void Update () {
            put ();     //放置棋子
        }
    
        void put () {
            if (!iswin) {
                if (Input.GetMouseButtonDown(0)) {      //鼠标左键按下
                    Ray ray = Camera.main.ScreenPointToRay (Input.mousePosition);
                    RaycastHit hit;
                    if (Physics.Raycast(ray, out hit)){     //用射线检测鼠标点击的物体,也就是棋盘的部位
                        objName = hit.transform.name;
                        now = GameObject.Find(objName);
                        if (now.tag == "Untagged") {
                            myname = myname == "player1" ? "player2" : "player1";       
                            now.tag = myname;
                        }
                        if (now.tag == "player1") {
                            a = (GameObject)Instantiate (red.gameObject);       //若tag为player1,则下红色棋子
                            a.transform.position = now.transform.position;
                            a.tag = "qizi";
                        }
                        if (now.tag == "player2"){
                            a = (GameObject)Instantiate (blue.gameObject);      //若tag为player2,则下蓝色棋子
                            a.transform.position = now.transform.position;
                            a.tag = "qizi";
                        }
                    }
                }
            }
        }
    
        void LateUpdate() {
            reset ();
            if (MyCheck("player1") || MyCheck("player2")) {     //检测是否有玩家获胜
                iswin = true;
            }
        }

    MyCheck函数与OnCUI函数,MyCheck函数中判断玩家一还是玩家二获胜,在OnGUI中添加了重置按钮,并且显示获胜的玩家。

        bool MyCheck (string test) {        //判断是否获胜
            if (GameObject.Find ("Cube (1)").tag == test) {
                if (GameObject.Find ("Cube (2)").tag == test) {
                    if (GameObject.Find ("Cube (3)").tag == test)
                        return true;
                }
                if (GameObject.Find ("Cube (4)").tag == test) {
                    if (GameObject.Find ("Cube (7)").tag == test)
                        return true;
                }
                if (GameObject.Find ("Cube (5)").tag == test) {
                    if (GameObject.Find ("Cube (9)").tag == test)
                        return true;
                }
            }
            if (GameObject.Find("Cube (5)").tag == test) {
                if (GameObject.Find("Cube (2)").tag == test) {
                    if (GameObject.Find("Cube (8)").tag == test)
                        return true;
                }
                if (GameObject.Find("Cube (4)").tag == test) {
                    if (GameObject.Find("Cube (6)").tag == test)
                        return true;
                }
                if (GameObject.Find("Cube (3)").tag == test) {
                    if (GameObject.Find("Cube (7)").tag == test)
                        return true;
                }
            }
            if (GameObject.Find("Cube (9)").tag == test){
                if (GameObject.Find ("Cube (3)").tag == test) {
                    if (GameObject.Find ("Cube (6)").tag == test)
                        return true;
                }
                if (GameObject.Find("Cube (7)").tag == test) {
                    if (GameObject.Find("Cube (8)").tag == test)
                        return true;
                }
            }
            return false;
        }
    
        void OnGUI() {
            GUIStyle font = new GUIStyle ();
            font.fontSize = 20;
            if  (GUI.Button (new Rect (50, 230, 100, 50), "Reset")) {       //重置按钮
                re = true;
            }
            if (MyCheck("player1")) {
                GUI.Label (new Rect (50, 200, 100, 50), "Player 1 wins!", font);        //显示player1获胜
            }
            if (MyCheck("player2")) {
                GUI.Label (new Rect (50, 180, 100, 50), "Player 2 wins!", font);        //显示player2获胜
            }
        }

    下面附上完整代码,以及游戏运行画面:

    using System.Collections;
    using System.Collections.Generic;
    using UnityEngine;
    
    public class game : MonoBehaviour {
    
        public Transform red;   //预制物体红色棋子
        public Transform blue;  //预制物体蓝色棋子
    
        bool iswin = false;     //此bool变量用于判断游戏是否结束
        bool re = true;     //此bool变量用于判断是否重置
        GameObject now;
        GameObject a;
        GameObject[] qizis;
        GameObject qizi;
        string objName;
        string myname;
    
        void Start () {
            reset ();   //初始化
        }
    
        void reset () {     //初始化函数
            if (re) {
                iswin = false;
                for (int i = 1; i < 10; i++)
                    GameObject.Find ("Cube (" + i + ")").tag = "Untagged";      //将每个棋盘格子的tag设置为Untagged
                qizis = GameObject.FindGameObjectsWithTag ("qizi");     //寻找所有棋子
                foreach (GameObject qizi in qizis) {
                    Destroy (qizi);     //逐个删除棋子
                }
                re = false;
            }
        }
    
        void Update () {
            put ();     //放置棋子
        }
    
        void put () {
            if (!iswin) {
                if (Input.GetMouseButtonDown(0)) {      //鼠标左键按下
                    Ray ray = Camera.main.ScreenPointToRay (Input.mousePosition);
                    RaycastHit hit;
                    if (Physics.Raycast(ray, out hit)){     //用射线检测鼠标点击的物体,也就是棋盘的部位
                        objName = hit.transform.name;
                        now = GameObject.Find(objName);
                        if (now.tag == "Untagged") {
                            myname = myname == "player1" ? "player2" : "player1";       
                            now.tag = myname;
                        }
                        if (now.tag == "player1") {
                            a = (GameObject)Instantiate (red.gameObject);       //若tag为player1,则下红色棋子
                            a.transform.position = now.transform.position;
                            a.tag = "qizi";
                        }
                        if (now.tag == "player2"){
                            a = (GameObject)Instantiate (blue.gameObject);      //若tag为player2,则下蓝色棋子
                            a.transform.position = now.transform.position;
                            a.tag = "qizi";
                        }
                    }
                }
            }
        }
    
        void LateUpdate() {
            reset ();
            if (MyCheck("player1") || MyCheck("player2")) {     //检测是否有玩家获胜
                iswin = true;
            }
        }
    
        bool MyCheck (string test) {        //判断是否获胜
            if (GameObject.Find ("Cube (1)").tag == test) {
                if (GameObject.Find ("Cube (2)").tag == test) {
                    if (GameObject.Find ("Cube (3)").tag == test)
                        return true;
                }
                if (GameObject.Find ("Cube (4)").tag == test) {
                    if (GameObject.Find ("Cube (7)").tag == test)
                        return true;
                }
                if (GameObject.Find ("Cube (5)").tag == test) {
                    if (GameObject.Find ("Cube (9)").tag == test)
                        return true;
                }
            }
            if (GameObject.Find("Cube (5)").tag == test) {
                if (GameObject.Find("Cube (2)").tag == test) {
                    if (GameObject.Find("Cube (8)").tag == test)
                        return true;
                }
                if (GameObject.Find("Cube (4)").tag == test) {
                    if (GameObject.Find("Cube (6)").tag == test)
                        return true;
                }
                if (GameObject.Find("Cube (3)").tag == test) {
                    if (GameObject.Find("Cube (7)").tag == test)
                        return true;
                }
            }
            if (GameObject.Find("Cube (9)").tag == test){
                if (GameObject.Find ("Cube (3)").tag == test) {
                    if (GameObject.Find ("Cube (6)").tag == test)
                        return true;
                }
                if (GameObject.Find("Cube (7)").tag == test) {
                    if (GameObject.Find("Cube (8)").tag == test)
                        return true;
                }
            }
            return false;
        }
    
        void OnGUI() {
            GUIStyle font = new GUIStyle ();
            font.fontSize = 20;
            if  (GUI.Button (new Rect (50, 230, 100, 50), "Reset")) {       //重置按钮
                re = true;
            }
            if (MyCheck("player1")) {
                GUI.Label (new Rect (50, 200, 100, 50), "Player 1 wins!", font);        //显示player1获胜
            }
            if (MyCheck("player2")) {
                GUI.Label (new Rect (50, 180, 100, 50), "Player 2 wins!", font);        //显示player2获胜
            }
        }
    }
    

    运行效果:
    运行效果
    最后,希望自己能够坚持对unity的学习与探索,永不放弃!

    展开全文
  • 分享一个自己用来练习unity基础做的unity小游戏,为了做好后能放在手机里无聊的时候玩,开发环境是安卓端,想要打包成PC端的朋友们记得改一下打包环境。 由于做这个游戏的时候比较忙,UI方面做的比较粗糙,但项目...
  • UNITY小游戏源码

    2015-03-07 10:57:02
    UNITY 游戏源码,欢迎大家下载,希望对大家有用。
  • Unity 小游戏:3D射箭

    千次阅读 2017-04-04 01:43:14
    Unity 小游戏:3D射箭 前两周因为实训太忙,再加上自己对老师所讲的设计模式并不是很理解,所以就没有写博客。这次博客是记录3D射箭游戏的实现过程……

    Unity 小游戏:3D射箭

    前两周因为实训太忙,再加上自己对老师所讲的设计模式并不是很理解,所以就没有写博客。这次博客是记录3D射箭游戏的实现过程。

    1. 准备资源

    我是在网上找的弓与箭的资源,至于靶子,创建五个不同大小的同心圆柱体,如图所示, 靶子
    需要注意的是,五个圆柱体并不在同一个平面上,这样才能够看清每一环的颜色,并且在检测碰撞时不会出现各种问题。

    另外,如果靶子放得离相机太近,就没有射箭的感觉了;离相机太远,好像又看不清靶子了,然后我试着把靶子MaterialShader改为 Sprites/Default ,这样靶子离相机远一点也能看得很清晰。

    2. 布置场景

    把弓箭作为Main Camera的子物体,这样我们可以在用鼠标控制镜头移动时,使弓箭一直指向屏幕中心,以达到第一人称控制器的效果。
    场景物体
    在此项目中,没有选择使用GUI来做UI界面,而是创建了一个Canvas,在这里面添加了一个Image用来显示弓箭的准心,以及四个Text来显示得分、风向、风力、提示等。
    UI

    3. 编辑脚本

    游戏采用MVC架构,大部分功能是自己实现的,也有一小些函数是借鉴大神的。整体上感觉有很多缺陷,但是又不知道怎么修改才好,我也很无奈啊!°(°ˊДˋ°) °

    下面是我的UML图:
    UML图

    以下是完整代码:

    SSDirector.cs

    using System.Collections;
    using System.Collections.Generic;
    using UnityEngine;
    
    public class SSDirector : System.Object {
    
        private static SSDirector _instance;
    
        public ISceneCotroller currentScenceCotroller {
            get;
            set;
        }
    
        public bool running {
            get;
            set;
        }
    
        public static SSDirector getInstance() {
            if (_instance == null) {
                _instance = new SSDirector ();
            }
            return _instance;
        }
    }
    

    ISceneCotroller.cs

    using System.Collections;
    using System.Collections.Generic;
    using UnityEngine;
    
    public interface ISceneCotroller {
        void LoadResources ();
    }
    

    IUserAction.cs

    using System.Collections;
    using System.Collections.Generic;
    using UnityEngine;
    
    public interface IUserAction {
        string getMyScore ();
        float getWind ();
        void Openbow ();
        void Draw ();
        void Shoot ();
    }

    ActionManager.cs

    using System.Collections;  
    using System.Collections.Generic;  
    using UnityEngine;  
    
    public class ActionManager : MonoBehaviour {
    
        private float Force = 0f;
        private int maxPower = 2500;
        private float power;
        public Transform arrowSpawn;
        public Transform myArrow;
        public Transform bow;
    
        //播放拉弓动画
        public void Openbow () {
            bow.GetComponent<Animation>().Play("Draw");
            bow.GetComponent<Animation>()["Draw"].speed = 1;
            bow.GetComponent<Animation>()["Draw"].wrapMode = WrapMode.Once;
    
            arrowSpawn.GetComponent<MeshRenderer>().enabled = true;
    
            //重置 power 为 0
            power = 0;
        }
    
        //拉弓,从power为0到power为3000
        public void Draw () {
            if(power < maxPower) {
                power += maxPower * Time.deltaTime;
            }
        }
    
        //射箭
        public void Shoot () {
            float percent = bow.GetComponent<Animation>()["Draw"].time / bow.GetComponent<Animation>()["Draw"].length;
            float shootTime = 1 * percent;
    
            bow.GetComponent<Animation>().Play("Shoot");
            bow.GetComponent<Animation>()["Shoot"].speed = 1;
            bow.GetComponent<Animation>()["Shoot"].time = shootTime;
            bow.GetComponent<Animation>()["Shoot"].wrapMode = WrapMode.Once;
    
            arrowSpawn.GetComponent<MeshRenderer>().enabled = false;
            Transform arrow= Instantiate (myArrow, arrowSpawn.transform.position, transform.rotation);
            arrow.transform.GetComponent<Rigidbody>().AddForce(transform.forward * power);
    
            wind (arrow);
            Force = Random.Range (-100, 100);
        }
    
        //产生风
        private void wind(Transform arrow) {
            arrow.transform.GetComponent<Rigidbody> ().AddForce (new Vector3 (Force, 0, 0), ForceMode.Force);
        }
    
        //返回风
        public float getWindForce() {
            return Force;
        }  
    }  

    ScoreRecorder.cs

    using System.Collections;  
    using System.Collections.Generic;  
    using UnityEngine;  
    
    public class ScoreRecorder : MonoBehaviour {
    
        private string Score = "0";
    
        //判断得分
        public void countScore(string type) {
            Score = type;
        }
    
        //返回分数
        public string getScore () {
            return Score;
        }
    }

    FirstScene.cs

    using System.Collections;
    using System.Collections.Generic;
    using UnityEngine;
    
    public class FirstScene : MonoBehaviour, ISceneCotroller, IUserAction {
    
        private ActionManager actionManager;
        private ScoreRecorder scoreRecorder;
    
        void Awake () {
            SSDirector director = SSDirector.getInstance ();
            director.currentScenceCotroller = this;
            director.currentScenceCotroller.LoadResources ();
            actionManager = (ActionManager)FindObjectOfType (typeof(ActionManager));
            scoreRecorder = (ScoreRecorder)FindObjectOfType (typeof(ScoreRecorder));
        }
    
        //加载预制物体靶子
        public void LoadResources () {
            Debug.Log ("loading...\n");
            GameObject target = Instantiate<GameObject> (
                                    Resources.Load<GameObject> ("Prefabs/target"));
            target.name = "target";
        }
    
        //获得分数
        public string getMyScore () {
            return scoreRecorder.getScore ();
        }
    
        //获得风向和风力
        public float getWind () {
            return actionManager.getWindForce ();
        }
    
        //拉弓
        public void Openbow () {
            actionManager.Openbow ();
        }
    
        //蓄力
        public void Draw () {
            actionManager.Draw ();
        }
    
        //射箭
        public void Shoot () {
            actionManager.Shoot ();
        }
    }
    

    UserGUI.cs

    using System.Collections;
    using System.Collections.Generic;
    using UnityEngine;
    using UnityEngine.UI;
    
    public class UserGUI : MonoBehaviour {
    
        private IUserAction userAction;
        private FirstScene scene;
        private Quaternion m_CharacterTargetRot;
    
        public Text Score;
        public Text WindDirection;
        public Text WindForce;
    
        // Use this for initialization
        void Start () {
            userAction = SSDirector.getInstance ().currentScenceCotroller as IUserAction;
        }
    
        void Awake () {
            m_CharacterTargetRot = transform.localRotation;
        }
    
        void Update () {
            //镜头跟随鼠标
            float xRot = Input.GetAxis ("Mouse X") * 3f;
            float yRot = Input.GetAxis ("Mouse Y") * -3f;
            m_CharacterTargetRot *= Quaternion.Euler (yRot, xRot, 0f);
            transform.localRotation = Quaternion.Slerp (transform.localRotation, m_CharacterTargetRot,
                5f * Time.deltaTime);
    
            //按空格键使弓箭瞄准靶心
            if (Input.GetKeyDown (KeyCode.Space)) {
                m_CharacterTargetRot = Quaternion.Euler (0f, 0f, 0f);
                transform.localRotation = Quaternion.Slerp (transform.localRotation, m_CharacterTargetRot,
                    5f * Time.deltaTime);
            }
    
            //鼠标左键按下,开始拉弓
            if (Input.GetMouseButtonDown (0)) {
                userAction.Openbow ();
            }
    
            //鼠标左键按住不放,蓄力
            if (Input.GetMouseButton (0)) {
                userAction.Draw ();
            }
    
            //鼠标左键抬起。射箭
            if (Input.GetMouseButtonUp (0)) {
                userAction.Shoot ();
            }
    
            Score.text = "Score : " + userAction.getMyScore ();     //显示上一轮分数
            float force = userAction.getWind ();
            if (force < 0) {
                WindDirection.text = "Wind Direction : <---";       //显示风向
            } else if (force > 0) {
                WindDirection.text = "Wind Direction : --->";
            } else {
                WindDirection.text = "Wind Direction : No";
            }
            WindForce.text = "Wind Force : " + Mathf.Abs (userAction.getWind ()); //显示风力
        }
    }

    Arrow.cs

    using UnityEngine;
    using System.Collections;
    
    public class Arrow : MonoBehaviour {
    
        private RaycastHit hit;
    
        void  Update (){
            //检测在移动的箭
            if(GetComponent<Rigidbody>().velocity.magnitude > 0.5f) {
                CheckForHit();
            } else {
                enabled = false;
            }
            if (transform.position.y < -5) {
                Destroy (this.gameObject);      //将掉出地面以下的箭销毁
            }
        }
    
        //检测是否碰撞
        void CheckForHit (){
            float myVelocity = GetComponent<Rigidbody>().velocity.magnitude;
            float raycastLength = myVelocity * 0.03f;
    
            if(Physics.Raycast(transform.position, transform.forward, out hit, raycastLength)) {
                GetComponent<Rigidbody>().constraints = RigidbodyConstraints.FreezeAll;     //使箭停留在靶子上
                transform.position = hit.point;
                transform.parent = hit.transform;
                enabled = false;
            } else {
                Quaternion newRot = transform.rotation;
                newRot.SetLookRotation(GetComponent<Rigidbody>().velocity);
                transform.rotation = newRot;    //箭没中靶,则继续做抛物线运动
            }
        }
    }

    Target.cs

    using System.Collections;
    using System.Collections.Generic;
    using UnityEngine;
    
    public class Target : MonoBehaviour {
    
        private ScoreRecorder scoreRecorder;
    
        public string score;    //对应靶环的分数
    
        public void Start() {
            scoreRecorder = (ScoreRecorder)FindObjectOfType (typeof(ScoreRecorder));
        }
    
        void OnTriggerEnter(Collider other) {
            if (other.gameObject.tag == "Arrow") {
                scoreRecorder.countScore (score);       //记录分数
            }
        }
    }
    展开全文
  • Unity小游戏-飞翔的小鸟项目分享 分享一个自己用来练习unity基础做的unity小游戏,为了做好后能放在手机里无聊的时候玩,项目开发环境是安卓端,想要打包成PC端的朋友们记得改一下打包环境。 由于做这个游戏的时候...

    Unity小游戏-飞翔的小鸟项目分享

    分享一个自己用来练习unity基础做的unity小游戏,为了做好后能放在手机里无聊的时候玩,项目开发环境是安卓端,想要打包成PC端的朋友们记得改一下打包环境。
    由于做这个游戏的时候比较忙,UI方面做的比较粗糙,但项目总体功能都已经完成,没有明显bug,代码都写上了详细的注释,适合unity新手参考学习。
    这里分享出项目工程包和apk文件。

    (一)项目分享:
    1.github地址:https://github.com/windbell233/UnityGame-FlappyBird.git
    2.不会使用git的朋友也可以在点开我的主页在资源里下载项目工程包,含有打包好的apk文件。(发帖时csdn还在审核上传资源,请朋友们等审核通过后再下载)
    (二)游戏效果图:
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    展开全文
  • Unity小游戏——拼图

    2016-11-24 21:46:38
    自己用Unity5.2.3写的一个小游戏——拼图,内含所有的代码及场景文件
  • unity小游戏四子连珠

    2019-01-30 21:40:16
    使用UNITY编写的3D棋类博弈小游戏。人工智能很强的。大家可以下载试一试。
  • Unity 小游戏:智能巡逻兵

    千次阅读 2017-04-18 01:35:04
    Unity 小游戏:智能巡逻兵 对于大多数游戏来说,人工智能是不可或缺的一部分。优秀的人工智能可以让游戏更加具有挑战性,让玩家感受到更真实的游戏体验,更重要的是让游戏更加有趣。
  • 这是我学习Unity过程中开发的小游戏,供感兴趣的初学者参考
  • 这是我学习Unity过程中开发的小游戏,供感兴趣的初学者参考
  • Unity小游戏算法分析与实现》 《Unity小游戏算法分析与实现》 版本 作者 参与者 完成日期 备注 Unity2017_GameDemo_V01_1.0 严...
  • Unity2018.4.2,VS2017 二、游戏要求 1、一局11回合(可修改) 2、胜率保持50%(可修改) 三、效果演示(声音录不上) 四、游戏Demo https://github.com/huangyuanyuan666/FingerGuessGame.git
  • 在第二部分中,您将在创建第一个游戏(小型太空射击游戏)时在Unity界面中工作。 如果感兴趣可以添加我的Unity交流群:1146128932 本篇小型太空射击篇幅较长,分为四篇,本篇为第一篇。 学习内容 1 如何使用“项目”...
  • 打算写安卓端的小游戏,奈何unity没配置Android发布环境,特此记录一下踩坑历程。 另外说明一下,unity版本:2019.3.2,本打算用19.4.17的,结果安装后打不开,就没有浪费时间去弄。 首先感谢peng_1993: 文章链接...
  • 小型太空射击游戏教程篇幅较长,分为四篇,本篇为第二篇,有伙伴没有看【小型太空射击游戏(一)】可以先去看一下 欢迎加入我们的Unity问题交流群:1146128932 3.创建你的第一个实例 没有玩家的游戏是什么?从您...
  • 小型太空射击游戏教程篇幅较长,分为四篇,本篇为第四篇,有伙伴没有看【小型太空射击游戏(三)】可以先去看一下 欢迎加入我们的Unity问题交流群:1146128932 8.武装大炮 虽然四处飞行很有趣,但大多数玩家都渴望...
  • 小型太空射击游戏教程篇幅较长,分为四篇,本篇为第三篇,有伙伴没有看小型太空射击游戏(二)可以先去看一下 欢迎加入我们的Unity问题交流群:1146128932 6.控制相机 如果宇宙飞船不能移动,它并不是真正有用的...
  • unity小游戏——熄灯

    千次阅读 2018-05-05 19:24:05
    那么就是2的i*j次种状态,可见灯的状态还是挺多的,话不多说,为了研究这个问题的解决方案,我决定自己用Unity做成一个小游戏,效果如下(本游戏为5行*5列): 简单模式: 一般模式: 困难模式(没解出来 囧~): 在...
  • 自制Unity小游戏TankHero-2D(4)关卡+小地图图标+碰撞条件分析 我在做这样一个坦克游戏,是仿照(http://game.kid.qq.com/a/20140221/028931.htm)这个游戏制作的。仅为学习Unity之用。图片大部分是自己画的,少数...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 5,106
精华内容 2,042
关键字:

unity小游戏