碰撞检测函数
private void OnCollisionEnter(Collision collision){print("OnCollisonEnter");}private void OnCollisionExit(Collision collision){print("OnCollisonExit");}private void OnCollisionStay(Collision collision){print("OnCollisonStay");}
碰撞信息获取
private void OnCollisionEnter(Collision collision){print(collision.collider);print(collision.collider.name);print(collision.collider.tag);print("OnCollisonEnter");}
unity手册
脚本API
触发检测
Rigidbody勾选Is Trigger
Lightmapping
所有设置为static
generate lighting生成灯光贴图
选择shadow Type
修改range
使用粒子系统创建火焰
创建动画(火光闪烁)
window->animation
Intensity:灯光强度
导航系统
window->Navigation都勾选上Static
Navigatio->bake
穿过草:取消勾选Navigation static
石头不能通过:Navigation->object->not walkable
人物添加Nav Mesh Agent
通过导航系统控制人物移动
创建脚本
using UnityEngine.AIpublic NavMeshAgent agent;//拖拽Nav Mesh Agentvoid Update(){if(Input.GetMouseButtonDown(0)){Ray ray=Camera.main.ScreenPointToRay(Input.mousePosition);RaycastHit hit;if(Physics.Raycast(ray,out hit)){print(hit.point);agent.etDestination(hit.point);}}}
控制摄像机的跟随
添加代码
public transform hero;private Vector3 offset;void start(){offset=transform.position-hero.position;}void Update(){transfrom.position=offset+hero.position;}
控制角色动画播放
创建一个animation controller
赋值给hero
选择hero,选择window里的animator
nav mesh agent 控制移动
创建参数Speed,右键选择第一个,右侧面板更改条件,取消勾选has exit time
using UnityEngine.AIpublic NavMeshAgent agent;//拖拽Nav Mesh Agentpublic Animator anim;//拖拽Animatorvoid Update(){if(Input.GetMouseButtonDown(0)){Ray ray=Camera.main.ScreenPointToRay(Input.mousePosition);RaycastHit hit;if(Physics.Raycast(ray,out hit)){print(hit.point);agent.etDestination(hit.point);}}anim.SetFloat("speed",agent.velocity.magnitude);}
unity碰撞检测函数 碰撞信息获取 触发检测 使用粒子系统创建火焰 创建动画(火光闪烁) 导航系统 通过导航系统控制人物移动 控制摄像机的跟随 控制角色动画播放