学习unity3d笔记心得
2016-08-02 17:27:48 Dead_Rabbit6_0 阅读数 504

Update() 与 FixedUpdate() 的区别:

Update() 是每帧调用一次,一般用于非物理运动
FixedUpdate() 是每隔固定时间调用一次,一般用于物理运动。在Unity 中,所有的物理运算都是使用固定时间的

*在实际应用中,尽量在速度上使用 Time.deltaTime 目的是为了速度平衡

*当变量在脚本类中的属性为 PUBLIC 的时候,可以在Unity编辑器中查看并修改

*在任何脚本中,如果脚本被赋予GameObject的话,肯定会激活它的 Awake() 方法,如果激活,则会调用 Start()方法
*开发者可以在 Reset()方法中写入当前脚本变量的初始值(default)
*[SerializeField] 和 [HideInInspector] :

放在 [SerializeField]下的变量是可以在编辑器中被发现的,而放在[HideInInspector]下的变量是被隐藏的
  • GameObject.Find(“Object名称”);的方法来获取一个GameObject,类似于CSS中的id
  • GameObject.FindGameObjectWithTag(“”):是通过Object 的 Tag 标签内容来进行查找和操作的,这种情况更像是 CSS 中的 class。
Transform
  • 在坐标系中,有 Right Up Forward三个变量,分别代表 当前物体的X,Y,Z轴,与世界坐标系是不同的。
  • 函数:
*TransformPoint() : 将当前坐标转换为世界坐标值
*InverseTransformPoint():将世界坐标系坐标转化为某物体的坐标
*TransformDirection():将某物体的方向向量转化为世界坐标系中的方向向量
*InverseTransformDirection()://将某物体的世界坐标系中的方向向量转化为该物体的方向向量
*另外补充一个在Unity中引入第一人称的方法:在Assets中引入包:Character中的FirstPersionCharactorm,再把其Prefabs中的FPSController拖入到Hierarchy中即可(将主相机去掉MainCamera)
笔记未完待续。。
2017-10-18 22:17:59 xujin12368 阅读数 106

今日将GUI这部分学完了:

GUI中的按钮:
Button ,RepeatButton ,SelectionGrid

 

上一篇博客留下的问题,还未解决。。。

2017-10-17 21:35:58 xujin12368 阅读数 232

GUI.color变量:

改变文字包括背景的颜色

 

GUI.contentColor变量:

只改变字体颜色

 

GUI.enabled变量:

控制接下来的所有控件打开与否

 

对于文本类的控件:string stringToEdit
如果不写成
stringToEdit=GUI.TextField();
那么就无法编辑

怎样表示一个字符:例如”*”[0]  即表示一个字符

 

 

不懂的地方:

SendMessage 和Button1OnMouseOver()

SetNextControlName 和 GetNameOfFocusedControl

2017-10-19 21:35:53 xujin12368 阅读数 174

UGUI控件之Button

给按钮添加监听事件:
将脚本挂载到Canvas游戏对象上面,然后将Canvas拖到On Click()上边,再展开No Function下拉框,选择对应脚本。

 

如果要创建UGUI类型的变量,需要添加usingUnityEngine.UI

2017-10-23 21:49:02 xujin12368 阅读数 137

滚动视图需要什么?

一个Grid网格

一个Scrool Rect

一个Mask

 

 

在书第四章的音乐播放器实例中,如何修改代码,给每一个被实例化的Prefab添加一个数字ID,以达到点击相应按钮播放相应歌曲的目的。


第四章音乐播放器案例中,这段代码中的委托:

bt.GetComponent<Button>().onClick.AddListener( //给实例化的按钮添加监听
                delegate ()                                //委托
                {
                    this.onListElementBtnClick(bt);        //添加一个带有“GameObject”参数类型的监听
                });

到底是什么意思呢?是封装方法?可是为什么要这么封装方法呢?为什么不直接:

bt.GetComponent<Button>().onClick.AddListener( //给实例化的按钮添加监听
 this.onListElementBtnClick(bt));       
 //添加一个带有“GameObject”参数类型的监听
             
啊,为什么啊。。。

___________________2017/10/24更新_________________________

解答上面的问题:如果传给AddListener()的是带参数的方法,那么就必须要用到delegate(){}将这个带参数的方法传递给AddListener();如果不是一个带参数的方法,可以通过.AddListener(this,onListElementBtnClick);的方式来写。

那么这是为什么呢?

第四章学完之后遗留下来的问题:

在音乐播放器这个案例中,怎样给实例化的Prefab们添加一个可识别的数字ID,以此来实现一个真正的音乐播放器即点击相应的按钮时会播放相应的音乐。

 

没有更多推荐了,返回首页