协程方法可以暂停,每次暂停都要使用yield return,例如yield return new WaitforSeconds(3); 等待三秒。
Coroutines
1.返回值是IEnumerator
2.返回参数的时候使用yield return null/0
3.协程返回方法的调用StartCoroutine(method))
颜色渐变
协程方法可以暂停,每次暂停都要使用yield return,例如yield return new WaitforSeconds(3); 等待三秒。
Coroutines
1.返回值是IEnumerator
2.返回参数的时候使用yield return null/0
3.协程返回方法的调用StartCoroutine(method))
颜色渐变
协程方法:如果调用的是携程方法,那么调用完这个方法后,不会等这个方法执行完就继续向下执行了。
如果是执行一个普通方法,那么会等这个方法执行完,然后继续向下执行。
修改游戏物体的颜色
void Staet(){
ChangeColor();
}
void ChangeColor(){
cube.Getcomponent<MehRenderer>().material.color=Color.blue;
}
携程方法定义://Coroutines
//1.返回值是IEnumerator
//2.返回参数的时候使用yield return,如return null/0.
//3.协程方法的调用使用StartCoroutine()来进行调用
IEnumerator ChangeColor(){
cube.Getcomponent<MehRenderer>().material.color=Color.blue;
yield return;/yield return null;
}
游戏物体的禁用用SetActive是一个成员方法,通过对象来调用。
在MOnobehaviour里面通过isActiveAndEnable来判断组件是否是激活的
怎么设置是否激活 enabled=true/false
print 只能在MOnobehaviour
MonoBehaviour
findobjectoftype
findobjectsoftype
都是静态方法
例如:Light light = FindObjectOfType<Light>();
light.enabled = false;
Transform[] ts = FindObjectsOfType<Transform>();
foreach (Transform t in ts){Debug.log(t.name);}//
所以类的基类都是unityengine.
游戏物体的变量:
activelnhierarchy:判断游戏物体
activeself:自身是否处于激活状态,
tag:标签,比如角色的名字,用来区分游戏物体
transform:场景中的任何物,他都必须有一个transform组件,因为是定义它的位置的,每个游戏物体都是有一个transform组件。
addcomponent<>可以用来添加一些组件
例如:go.AddComponent<Rigidbody>();
创建游戏物体的方法:
1.GameObject go = new GameObject("XX")
2.根据prefab(Lrean4)或者根据另一个游戏物体克隆(instantiate 克隆 例如:.GameObject.instantiate(Prefab))
3.GameObject.CreatePrimitive(PrimitiveType.XX)
translate就是朝某个方向移动
例如cube。translate(vector3.
Awake方法是在整个场景运行起来之后进行调用
fixeUpdate是每秒调用6次
Update每秒调用一次
onTrigger和oncollision是用来触发碰撞器的
start方法执行一次
update方法执行每帧执行一次
reset只会在Editor方法下才会调用
attached是把一个脚本添加到一个游戏物体身上
reset是每一个组件后面有一个齿轮,用来设置的,可以设置各种值,点击reset可以触发。
首字母要注意大写 小写会不执行首
debug.log
Instantiate 相当于复制
CreatePrimitive 创造简单的原始图形
gfhfdgfdg
全屏没法边看边写,小屏。能写看不到。哎。难受
gameObject
构造方法
实例化方法
Transform Object Destroy
unity常用API:
协程暂停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。
协程定义方法:
IEnumerator changeColor()
{
print("hello");
yield return null;
}
协程调用方法:
StartCoroutine(changeColor());
协程与主线程同时执行,并行