如果想用Onmousexxx()必须要在附加该脚本的游戏物体身上添加collider
如果碰撞器为Trigger则保证Edit pysics中设为true
OnMouseDown()鼠标 按下
OnMouseUp()鼠标抬起
OnMouseDrag()按下没有抬起,即拖拽
OnMouseEnter()鼠标移到物体上时触发
OnMouseOver()鼠标呆在物体上时
OnMouseExit()鼠标从物体身上移开
OnMouseUpAsButton()可以用来检测单击某物体
如果想用Onmousexxx()必须要在附加该脚本的游戏物体身上添加collider
如果碰撞器为Trigger则保证Edit pysics中设为true
OnMouseDown()鼠标 按下
OnMouseUp()鼠标抬起
OnMouseDrag()按下没有抬起,即拖拽
OnMouseEnter()鼠标移到物体上时触发
OnMouseOver()鼠标呆在物体上时
OnMouseExit()鼠标从物体身上移开
OnMouseUpAsButton()可以用来检测单击某物体
GetComponent 获得物体下的一个组件(一)
GetComponents 获得物体下的多个组件(多)
GetComponentInChildren
获得它及其子代组件(一)
GetComponentsInChildren
获得它及其子代组件(多)
GetComponentInParent
获得它及其父代组件(一)
GetComponentsInParent
获得它及其父代组件(多)
Time.deltaTime用来做运动
realtimeSinceStartup用来做性能测试
Lerp和Slerp:
前者是距离大小的差值,后者是角度大小的差值
协程暂停3秒后继续执行
IEnumerator changeColor()
{
print("hha");
yield return new waitforseconds(3);
print("hahah");
}
利用协程操作物体颜色渐变
IEnumerator fade()
{
for(float i=0;i<=1;i=i+0.1f)
{
cube.GetComponent<MeshRenderer>().material.color=new color(i,i,i);
yield return new waitforseconds(0.1f);
}
}
static function Lerp (a : Color, b : Color, t : float) : Color
Description描述
Interpolates between colors a and b by t.
通过t在颜色a和b之间插值。
/t/ is clamped between 0 and 1. When t is 0 returns a. When t is 1 returns b.
"t"是夹在0到1之间的值。当t是0时返回颜色a。当t是1时返回颜色b。
Mathf
Mathf.Rad2Deg()弧度转换成度数
Mathf.Deg2Rad()
Mathf.Epslion()代表无限小的一个小数
Mathf.Infinity()代表无限大的数,Infinite前可加Negative表示负无穷
Mathf.Pi()圆周率
GameObject独有的静态方法
静态方法都是首字母大写的
Find():根据名字查找,遍历场景中的所有游戏物体,用的少
FindGameObjectWithTag():通过标签来查找相同标签游戏物体
FindGameObjectsWithTag():通过标签来查找所有相同标签游戏物体
//Find
GameObject go = GameObject.Find("Main Camera");
go.SetActive(false);//验证上一步是否运行
//FindGameObjectsWithTag
GameObject[] gos = GameObject.FindGameObjectsWithTag("MainCamera");
gos[0].SetActive(false);
自动瞄准
015
monobehavior类
public Fun
Invoke族 调用
Invoke 调用
InvokeRepeating 重复调用
canceInvoke 取消调用
Coroutine族
Mathf中的常用方法
Mathf.Abs()取绝对值
Mathf.Ceil()向上取整(10.2取到11,返回float类型)
Mathf.CeilToInt()与上相同,不过返回的是int类型
Mathf.Clamp(float value,float min,float max)如果value小于min则返回min,大于max则返回max,大于min小于max则返回value本身,即把一个值限制在范围之内
Mathf.Clamp01(float value)即min为0max为
一般情况下,比如在被点燃的情况下
016
monobehavior自带的属性
isactiveandenable状态是否激活
enable可通过enable=?激活
name
tag
gameobject获得物体
transform获得transform组件
print(static Fun)
对象和组件有很多相同的属性和方法,又有不同的部分
游戏物体间消息的发送和接收
通过对象来调用的方法 (public Functions)
BroadcastMessage:广播一个消息,调用方法
自身和其子方法都会调用
public class MessageCeS : MonoBehaviour {
public GameObject target;
// Use this for initialization
void Start () {
//括号中写具体的方法名,首字母要带大写,BroadcastMessage调用带有Attack方法的物体与其子物体
target.BroadcastMessage("Attack", null, SendMessageOptions.DontRequireReceiver);
}
// Update is called once per frame
}
public class Cube : MonoBehaviour {
// Use this for initialization
void Attack()
{
Debug.Log(this.gameObject+"正在攻击");
}
}
SendMessage:针对某个目标直接发送消息
不会影响其子物体
target.SendMessage("Attack", null, SendMessageOptions.DontRequireReceiver);
SendMessageUpwards:向上发送,调用当前物体与其父级(他的父级,他父级的父级.....)
target.SendMessageUpwards("Attack", null, SendMessageOptions.DontRequireReceiver);
017
使用方法的时候出现了问题可以到官方的文档里面去看官方的演示和说明,会告诉你到底这个API怎么用。
注意:开启协程和关闭协程的方式是对应的,也就是说如果你的协程使用方法名进行开启,那么关闭该协程也可以使用方法名,反之你就要定义一个IEnumerator变量去保存该协程,然后用StarCoroutine(变量)和StopCoroutine(变量)进行配套使用。
1,
018
协程方法Coroutines
该方法区别于传统的处理代码时,按CPU中断的模式执行(串联模式)
而是主程序边执行某段语句,边执行下一条语句(并联)
只需要进行以下操作
//1,返回值是IEnumerater
//2,返回参数的时候使用yield return
null/0;
//3,协程方法的调用
StartCoroutines( method())
IEnumerater Fun()
{
print("1");
print("2");
yield return null;
}
cube.Translate(Vector3.forward);
OnMouseUpAsButton可以检测是否单击了某个物体。
start方法执行一次
update方法执行每帧执行一次
reset只会在Editor方法下才会调用
attached是把一个脚本添加到一个游戏物体身上
reset是每一个组件后面有一个齿轮,用来设置的,可以设置各种值,点击reset可以触发。
首字母要注意大写 小写会不执行首
debug.log