ctrl 控制物体单位移动,v 顶点移动
ctrl 控制物体单位移动,v 顶点移动
灯光选择baked(烘焙)mode(模式),再进行生成
private void OnCollisionEnter(Collision collision){ }
private void OnCollisionExit(Collision collision){ }
private void OnCollisionStay(Collision collision){ }
我用unity2020,贴图效果与老师讲的完全不同,效果不明显
资源商店AssetStore下载资源,导入import。
Preference-General-Show Asset Store search hits.
window lightting setting
v键快捷吸附工具
计算摄像机跟hero 的位置
相机组件中创建脚本
public class FollowTager : MonoBehaviour {
public Transform hero;//获取hero的位置
private Vector3 offset;//偏移
// Use this for initialization
void Start () {
//获取初始偏移
offset = transform.position - hero.position;//初始位置-偏移位置
}
// Update is called once per frame
void Update () {
transform.position = offset + hero.position;
}
}
将目标指定给脚本
导航网格 烘培
windows下的navigation
确定navigation Static是勾选上的
确定(地形,石头,树,火堆)物体没有办法穿透
navigation 中的back选项框,进行烘培
靠近障碍物的话,就将agent radius的范围变小点
先选择物体
不想上石头上NavigationArea 设置为Not Walkable
添加nav Mesh Agent组件
设置radius,height高矮胖瘦
判断游戏物体是否可以穿过洞穴。。
给灯光添加闪烁 的效果
通过控制Light中的Intensity改变光的强度
粒子系统
灯光塔选择右键Effects particle System
Shapa修改形状
start lifetime生命变小0.76左右与火焰贯通
start Speed速度 此时应该是随机的Random between Two Constants
找到火花的粒子
创建火花对应的材质
shader-particles/additive
放入材质切图
指定粒子系统
Renderer
Material
设置粒子动画的播放
Texture sheer animation
4*4
start size 火焰大小
Emission粒子数量
rate over time 10个
慢慢变小
Size over lifetime
将曲线设置为慢慢变小
光源
Directional Light直射光
Light组件
Intensity默认是1
当旋转平行光的时候太阳的位置 会发生改变
新建光源(右键Light)
Point light点光源
(灯泡)四周发散光源
Range控制范围
Intensity控制强度
Spotlight
(手电筒)
Area Light区域光
(烘培使用)
传入的参数collision中的属性
collision.collider碰撞器发生碰撞的游戏物体
collision.collider.name名字
collision.collider.tag标签
Tip:
两个物体必须都有collider
其中必须一个物体存在刚体Rigidbody,否则没有办法发生碰撞
技术文档在
Physics物理
Physics Overview下的coliders
碰撞检测
每次碰撞只会发生一次
OnCollisionEnter(Collision collision)碰撞开始
OnCollisionExit(Collision collision)碰撞结束
OnCollisionStay(Collision collision) 碰撞中
动画
动画状态机
Animations-新建controller
打开状态机Ctrl+6
使用参数判断状态
Has Exit Time取消等待时间
在脚本中设置速度的大小
public Animator anim;//获得动画组件
将动画组件拖进脚本中
anim.SetFloat("speed", agent.velocity.magnitude);
零基础模仿
抱着不求甚解的心态(认识世界)
碰撞检测collision:其中一个设置成为刚体,不会穿过物体;
触发检测collider:可以穿过物体
将collider中的is Trigger勾选上就是一个触发器
将Mesh Renderer 、 Cube (Mesh Filter)移除,就可以隐藏这个碰撞体,但是功能还是存在的(肉眼看不到外观)
开始碰撞
OnTriggerEnter(Collider other){
print("OnTriggerEnter"+other);
print("OnTriggerEnter"+other.name);
print("OnTriggerEnter 触发器所在游戏物体的标签"+other.tag);
}
结束碰撞
OnTriggerExit(Collider other){
print("OnTriggerExit"+other);
print("OnTriggerEnter"+other.name);
print("OnTriggerEnter"+other.tag);
}
持续碰撞
OnTriggerStay(Collider other){
print("OnTriggerStay"+other);
print("OnTriggerEnter"+other.name);
print("OnTriggerEnter"+other.tag);
}
当前物体与相机保持一致
Main Camera-->
GameObject -->
Align with view (ctrl+shift+f )
在box collider中勾选上 is trigger box collider碰撞器变为触发器
ctrl