unity3d 官方实例_unity3d实例 - CSDN
  • Unity官方实例源码RogouLikeProject(含注释),转载自siki学院
  • Unity3D官方寻路实例

    2020-07-29 14:18:53
    Unity3D官方寻路实例 NavMesh、NavMeshAgent、OffMeshLink用法 适用版本3.5
  • Unity3d UGUI 官方示例

    2020-07-30 23:32:18
    Unity3d UGUI 官方示例 包换UGUI各个控件的用法的示例
  • unity3d游戏开发实例教程 附带源码(工程文件)
  • 之前写过一篇“Unity3D NGUI动态创建按钮”不少人按照我文章中介绍的方法来动态创建按钮,文章那种做法并不好。现在写一遍新的文章来教大家用Prefab的方式来动态创建NGUI按钮(也可以是任何GameObject)。 1.首先要...

    原创文章如需转载请注明:转载自 脱莫柔Unity3D学习之旅 QQ群:【Unity3D(AR/VR) 334163814】【Unity3D(游戏) 119706192】 本文链接地址: 动态实例化Prefab


    之前写过一篇“Unity3D NGUI动态创建按钮”不少人按照我文章中介绍的方法来动态创建按钮,文章那种做法并不好。现在写一遍新的文章来教大家用Prefab的方式来动态创建NGUI按钮(也可以是任何GameObject)。


    1.首先要预制好我们要创建的物体:

    a.首先创建一个游戏物体。


    b.自定义样式并添加自己需要的脚本。


    我添加了一个测试代码,当点击按钮的时候把按钮文字替换为buttonID。
    using UnityEngine;
    using System.Collections;
    
    public class TestButton : MonoBehaviour 
    {
        public int ButtonID = 0;
    
        //点击把按钮问题替换为ButtonID
        void OnClick()
        {
            UILabel buttonLable = GetComponentInChildren<UILabel>();
            buttonLable.text = ButtonID.ToString();
        }
    }

    c.讲制作好的物体创建为Prefab。


    2.动态创建脚本。

    a.脚本。

    using UnityEngine;
    using System.Collections;
    using System.Collections.Generic;
    
    public class TestCreat : MonoBehaviour 
    {
        public GameObject ButtonPre;
        public int CreatCount = 3;
        public float PosY = 0;
        public float Padding = 40;
    
        //存储所有动态添加的按钮
        [HideInInspector]
        public List<TestButton> Buttons = new List<TestButton>();
    
    
        void Start()
        {
            CreatButton();
        }
    
        void Update()
        {
            //按下空格键,删除id为1的按钮
            if (Input.GetKeyDown(KeyCode.Space))
            {
                //不能在foreach里面直接删除元素,所以把要删除的元素先记录下来,foreach结束后再删除。
                TestButton deleteTB = null;
                foreach (TestButton item in Buttons)
                {
                    if (item.ButtonID == 1)
                    {
                        deleteTB = item;
                        break;
                    }
                }
                if (deleteTB != null)
                    Destroy(deleteTB.gameObject);
            }
        }
    
        void CreatButton()
        {
            Buttons.Clear();
            for (int i = 0; i < CreatCount; i++)
            {
                Buttons.Add(AddButton());
            }
        }
    
        TestButton AddButton()
        {
            GameObject go = NGUITools.AddChild(this.gameObject, ButtonPre);
            go.name = "动态" + Buttons.Count;
            go.transform.localPosition = new Vector3(go.transform.localPosition.x, PosY + Padding * Buttons.Count, go.transform.localPosition.z);
    
            TestButton tb = go.GetComponent<TestButton>();
            tb.ButtonID = Buttons.Count;
            return tb;
        }
    }
    

    b.赋值。

    将TestCreat脚本绑定在要创建动态物体的父级。
    将做好的Prefab绑定到ButtonPre属性。
    之后隐藏掉场景内手动设置的那个原始物体。


    3.结果测试。

    a.开始运行,创建了CreatCount个按钮,分别取名,Y轴由PosY开始,每个按钮间距Padding。


    b.点击按钮,按钮Label改变为ButtonID。


    c.按下空格键删除ButtonID为1的按钮。




    展开全文
  • Unity3d 实例化对象

    2019-08-03 20:15:24
    unity3D新手上路 实例化对象出现的bug 当我年轻的在unity3D的C#文件中使用new来创建一个对象的时候。 public class Single : MonoBehaviour { private Single m_single; m_single = new Single(); } ...

    unity3D新手上路 实例化对象出现的bug

    当我年轻的在unity3DC#文件中使用new来创建一个对象的时候。

    
            public class Single : MonoBehaviour {
            
               private Single m_single;
    
               m_single = new Single();
    
            }

    然后它警告了我

    
        ...   You are trying to create a MonoBehaviour using the 'new' keyword.  This is not allowed.MonoBehaviours can only be added using AddComponent() ...
    

    而且你会发现m_single一直为空。它告诉我们当你继承了MonoBehaviour你就不能使用关键字new来实例化一个对象。

    具体原来我也母鸡。

    
            public class Single : MonoBehaviour {
            
             private Single m_single;
            
            
              void Awake(){
                   m_single = this;
               }
            
            
              public static Single M_single(){
                   return m_single;
               }
            }
    

    好了现在这个m_single就是一个Single的实例化对象。

    转载于:https://www.cnblogs.com/chenjy1225/p/9661310.html

    展开全文
  • unity3d常用的脚本实例

    2020-07-15 23:30:34
    一些非常实用的unity3d脚本,经测试全部可用
  • Unity3D实例化物体

    2018-06-08 20:53:22
    1.实例化函数Instantite( gameObject , transform.position , transform.rotation ) ;在position位置,朝着rotation方向,生成一个gameObject(Clone);例子:发射子弹,游戏逻辑,在Update()函数里添加代码:void ...

    1.实例化函数

    Instantite( gameObject , transform.position , transform.rotation ) ;

    在position位置,朝着rotation方向,生成一个gameObject(Clone);

    1.事件生成(如子弹的发射,特效等)

    发射子弹,游戏逻辑,在Update()函数里添加代码:

    void Update(){
    	float fireCD=0.5f;//发射时间间隔
    	float nextFire=0;
    	if(Input.GetButton("Fire1")&&Time.time>nextFire){
    		nextFire=Time.time+fireCD;
    		Instantiate(bulletGO,shotSpawn.position,shotSpawn.rotation);
    	}
    }

    bulletGO:子弹预制体。shotSpawn:子弹生成位置的Transform。

    Time.time:游戏开始到现在的时间。

    2.固定生成(如怪物,敌人)

    一般都是每隔固定时间段随机生成一批对象,用"协程"来做.

    IEnumerator BornEnemy(){
    	int enemyCount; //每波敌人数量
    	float startTime; //开始等待时间
    	float bornTime; //每生成一个等待时间
    	float nextBornTime; //下波等待时间
    	yield return new WaitForSeconds(startTime);
    	while(true){
    		for(int i=0;i<enemyCount;i++){
    			Instantiate(enemyGO,trnas.position,Quaternion.identity);
    		yield return new WaitForSeconds(bornTime);
    		}
    		yield return new WaitForSeconds(nextBornTime);
    	}
    }
    void Start(){
    	StartCoroutine(BornEnemy);	//开启协程
    }

    展开全文
  • 转自:http://blog.csdn.net/sysujackjiao/article/details/67638813
    转自:http://blog.csdn.net/sysujackjiao/article/details/67638813
    
    展开全文
  • Unity3D基础知识、游戏算法一网打尽。
  • 5款Unity3D制作的小游戏实例,新手必备
  • Unity3D实例化物体

    2018-04-08 17:46:57
    一:public GameObject itemPrefab;void Store(){ if (transform.childCount == 0) { GameObject itemGameObject = Instantiate(itemPrefab) as GameObject; itemGameObj...
  • unity3d实例教程:俄罗斯方块 扫雷 贪吃蛇
  • Unity3D直接就提供接口能够轻松完成这一些,我开始还以为生成器是用Unity3D的粒子系统Particle System做的,其实不是,本身就有预设和实例化Instantiate帮你轻松完成一起。当然,生成也要遵守Unity3D的基本法则啊...
  • 电子书下载 : http://blog.csdn.net/good3651/article/details/53420721 -------本书完整讲解了利用Unity3D引擎制作游戏场景的全过程,内容全面,结构清晰,可作为高等院校游戏制作课程的基础教材,也可作为游戏...
  • 简介:在Unity3D的工程建设中,Prefabs(预设)是最非常用的一种资源类型,是一种可被重复使用的游戏对象。 特点1:它可以被置入多个场景中,也可以在一个场景中多次置入。 特点2:当你在一个场景中增加一个...
  • 利用脚本组件的public变量把prefabs拖入到对象相应脚本组件的public变量中,如下图然后在脚本中写如下代码:public class explosionScript : MonoBehaviour { // our ParticleExamples class being turned into an ...
  • Unity3D的一个具体实例,武士打怪兽,包括所有源代码噢!
  • 从崩溃的实例恢复您的场景 您的Unity项目遇到过崩溃嘛?你已经有一段时间没有保存你的场景了吗?不要担心!您仍然可以从临时目录恢复它! Unity3D可能会经常崩溃。Unity API提供了我们开发巨大的自由,但...
  • 主要是对应于英宝通的Unity3d公开课来阅读的。资源目录:第1章 Unity 3D界面介绍1.1 Unity 的标题栏1.2 菜单栏1.3 工具栏1.4 项目视窗1.5 层次视图1.6 场景视图1.6.1 场景变换图标1.6.2 视图工具条1.7 游戏视图1.8 ...
1 2 3 4 5 ... 20
收藏数 13,895
精华内容 5,558
关键字:

unity3d 官方实例