跟鼠标相关事件函数OnMouseXXX讲解
OnMouseDown
//按下拖拽都会执行,在哪里按下抬起还会在原物体触发
OnMouseDrag
OnMouseEnter
//每帧执行
OnMouseOver
OnMouseEnter
OnMouseExit
OnMouseExit
OnMouseUpAsButton//同一物体触发
要有collider,如果设置trigger要有下面设置
跟鼠标相关事件函数OnMouseXXX讲解
OnMouseDown
//按下拖拽都会执行,在哪里按下抬起还会在原物体触发
OnMouseDrag
OnMouseEnter
//每帧执行
OnMouseOver
OnMouseEnter
OnMouseExit
OnMouseExit
OnMouseUpAsButton//同一物体触发
要有collider,如果设置trigger要有下面设置
Coroutine协程的开启和关闭
StopCoroutine(协程返回值或者方法名字符串)
开启和关闭是对应的,方法名就都是方法名,字符串就都是字符串
StopAllCoroutine
使用coroutine实现颜色动画渐变
yeild return new WaitForSeconds(等待时间)
第一种
cube.GetComponent<MeshRenderer>().material.color = new Color(i,i,i,i);
第二种
Color color = color.GetComponent<MeshRenderer>().matrial.color;
Color newColor = Color.Lerp(color,Color.red,0.02f);
color.GetComponent<MeshRenderer>().matrial.color = newColor;
yeild return new WaitForSeconds(0.02);
if(Mathf.Abs(Color.red.g-newColor..g<=0.01f){
break;
}
什么是协程,它是如何执行的
协程开启会继续运行下面的方法,不会等方法结束再去运行下面的方法
StarTCoroutine(method());
MonoBehaviour中invoke的使用
IsInvoking("MethodName")是否在调用
MonoBehaviour里面的常用变量
isActiveAndEnable
enable
MonoBehaviour总览
CancelInvoke//只会取消当前脚本的
InvokeRepeating
Invoke(,time)有定时调用的功能
isActiveAndEnable判断组件是否是激活的
得到组件的各种方法函数
GentComponent
GentComponents
包括游戏物体本身和父亲(孩子),组件可能有多个相同的
GetComponentInChildren
GetComponentInParent
GetComponenstInChildren
GetComponentsInParent
游戏物体间消息的发送和接受
(例如脚本之间的消息传递)
//自身和子类接受消息
BroadcastMessage
//自身
SendMessage
//当前物体以及它所有的
SendMessageUpwards
GameObject独有的静态方法
FindGameObjectsWithTag GameObject[]
UniteEngine下Object拥有的静态方法
Destroy(component or gameObject,time);
//A场景跳转到B场景,场景切换时候,可以设置共享的游戏物体
DontDestroyOnLoad(transform,gameObject);
//获取拥有组件的游戏物体对象(不查找未激活的)
FindObjectOfType
FindObjectOfType
Ligeht light = FindObjectOfType<Light>();
light.enable = false//对组件禁用
GameObject\Component和Object的千丝万缕的关系
如何禁用和启用一个游戏物体
gameObject.activeInHierarchy判断是否是激活状态()
gameObject.SetActive();
activeSelf 是否是禁用自身(例如父物体禁用自身没禁用所以为true,activeInHierarchy为false)
gameObject.tag
如何给游戏物体通过代码添加组件
gameObject.AddComponent<>();
创建游戏物体的三种方法
第一种
new GameObject("Cube");
第二种根据prefab或者另外的游戏物体克隆
GameObject
第三种创建原始物体
GameObject.CreatePrimitive(Primitive.Plane);;
cube.Translate(Vector3.forward/50f)
timeScal对Time.deltaTime影响
realtimeSinceStartup性能测试
事件方法(类似start update
MonoBehaver-Behaver-Component-Object
Reset(初始化重置)
//当被附加组件(attach)和重置时候出发
void Reset(){
}
IEnumerator()携程
yield return 返回
StartCoroutine() 开启携程
WaitForSeconds() 根据时间渐变
Invoke();类似计时器
InvokeRepeating(); 第一调用的时间 以及没过多久再调用一次
CancelInvoke(); 移除以上
Workflowy整理的笔记