Unity学习日记17(虚拟轴、光)
虚拟轴
调用方法:
1.复制Unity虚拟轴详细轴的名称
2.填到GetAxis里,带双引号。一般用float接收
float h = Input.GetAxis("Horizontal");
float v = Input.GetAxis("Vertical");
Debug.Log("H:"+h+"V:"+v);
虚拟按键
if (Input.GetButtonDown("Jump"))
{
Debug.Log("jump");
}
光
有些材质不能制作阴影。
可以选择一下几种光
方向光
点光源:MC火把
聚光灯:有点像手电筒
烘焙光、面光:拍证件照的平面射光
烘焙光、面光
:拍证件照的平面射光
1.设置投射平面的属性
2.放置面光
3.生成光照
生成光照(等一小会)
在场景存放位置附近能看到生成的光照贴图,因为烘焙(?),然后是可以节省性能。
摄像机
拍摄指定对象
Culling Mask(剔除遮罩):摄像机不渲染(不拍摄)那个层(layer)的对象物体。例如我这里不勾选UI,那么层级是UI的对象物体将不会被拍摄。
同框出现(仅深度)
解决情况:一个摄像机拍摄不完,但是又想让里面出现的物体同框出现在画面中。
1.出主摄像机外,再添加一个摄像机
2.修改为“仅深度”,并将该摄像机的深度值修改成比主摄像机更高的值。
图中主摄像机深度为-1,副摄像机的深度为0。
3.效果图
4.测试:添加第三个摄像机,摄像机深度为1(前两个为-1和0)
允许添加。
小地图
俯视、显示区域
在场景中看到实时的画面——挂载在摄像机上的render textture
1.创建一个摄像机、一个渲染纹理(render textture)
2.将渲染纹理挂载到摄像机上,将渲染纹理赋值给场景中的物体
当场景中的摄像机发射移动、旋转变换时,渲染纹理也会实时变化,场景中的被复制了渲染纹理的物体的纹理(画面)也会发生变化。
应用:后视镜、小地图
简易角色控制移动
挂载脚本+添加charactercontroller
移动的代码是c.simplemove。输入方向。
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class movement_Component : MonoBehaviour
{
private CharacterController c;
// Start is called before the first frame update
void Start()
{
c = GetComponent<CharacterController>();
}
// Update is called once per frame
void Update()
{
float horizontal = Input.GetAxis("Horizontal");//横轴
float vertical = Input.GetAxis("Vertical");//纵轴
Vector3 dir = new Vector3(horizontal, 0, vertical);//方向
c.SimpleMove(dir);//移动代码
Debug.Log(dir);//方向
Debug.DrawRay(transform.position, dir, Color.red);//射线直观表示方向
}
}