7-18面试总结
第一次去面试,都没进行到面试这一步,到了先让机试,做个游戏,但好长时间没做过,基础都忘的差不多了,直接gg。这里总结下今天用到的忘了的知识点:
1.爆炸力
void OnCollisionEnter()
{
//获取爆炸范围的所有碰撞器
Collider[] col = Physics.OverlapSphere(transform.position, explosionRadius,lm);
if(col.Length>0) //如果有的话
{
for(int i=0;i<col.Length;i++)
{ //获取刚体
Rigidbody b = col[i].GetComponent<Rigidbody>();
if(b!=null) //如果该物体有刚体的话
{
//添加爆炸力场
b.AddExplosionForce(explosionForce, transform.position, explosionRadius);
}
unit u = col[i].GetComponent<unit>();
if(u!=null)
{
u.ApplyDamage(atk);
}
}
}
}
2.刚体添加力,
rigidbody.AddForce (Vector3.up * 10);
//在全局坐标系统添加一个向上的力
3.弹力的设置
a.在Project栏目下Create一个Physic Material物理材质;
b.在此物理材质中设定Bounciness值为大于0的小数,此数值越大,则说明弹力越大;
c.点选Sphere球体,在Inspector的Sphere Collider球体碰撞体的材质Material中选择刚刚创建好的New Physic Material;
4.碰撞和触发检测
a.碰撞器
MonoBehaviour.OnCollisionEnter(Collision collision)
MonoBehaviour.OnCollisionExit(Collision collision)
MonoBehaviour.OnCollisionStay(Collision collision)
b.触发器
MonoBehaviour.OnTriggerEnter(Collider collider)
MonoBehaviour.OnTriggerExit(Collider collider)
MonoBehaviour.OnTriggerStay(Collider collider)
5.跳转场景
a.Unity中切换场景使用的是Application.LoadLevel()函数,括号中加入场景的名称或编号即可,例如:
if( GUI.Button( Rect( Screen.width-105 , 520 , 80 , 40 ) , "切换场景" ) )
{
Application.LoadLevel("scene1") ;
}
b.切换场景后所有加载物体都将删除,除非使用Object.DontDestroyOnLoad(Object)添加标记,例如人物角色在切换场景后需要保留,就可以用此方法。
c.不要忘记的是,还需要在File->Building Setting中设置添加场景,否则也不能实现切换成功。