Unity - 快捷操作及脚本
<>----<>-----<>-------<>------<>--------<>-------<>----------<>-----<>-------<>------------<>
★★★进入VS后的快捷操作:
先Ctrl+K再Ctrl+C可以实现单行的无选择注释和所选区域的注释
使用两套快捷键来对注释进行操作
<>----<>-----<>-------<>------<>--------<>-------<>----------<>-----<>-------<>------------<>
QWERT 工具栏的五个快捷图标
鼠标中键按住可以切换为移动视角模式
Ctrl+D:直接复制一个游戏物体
聚焦:快速使自己想要处理的对象处于视野中央
double-click the object/F
上帝视角:快速实现旋转的快捷键
鼠标右键+QEDAWS(山下左右前后)
Ctrl实现段位化的移动
V键顶点吸附:
按住V键,左键选中一个顶点不松开进行吸附另一个Object的顶点
<>----<>-----<>-------<>------<>--------<>-------<>----------<>-----<>-------<>------------<>
★关于碰撞器与触发器中的输出语句查看方式:
console tab(直接在scene窗体下面可以看到!)
碰撞器的使用:
碰撞器:Collision (参数记忆:Collision collision)
触发器:Trigger (参数记忆:OnTriggerEnter others)
函数模型:
private void OnCollisionEnter(Collision collision)
private void OnCollisionStay(Collision collision)
private void OnCollisionExit(Collision collision)
触发器的使用:
函数模型:
private void OnTriggerEnter(Collider others)
private void OnTriggerStay(Collider others)
private void OnTriggerExit(Collider others)
源代码概述:
private void OnTriggerEnter(Collider others) { }
private void OnTriggerStay(Collider others) { }
private void OnTriggerExit(Collider others) { }
private void OnCollisionEnter(Collision collision) { }
private void OnCollisionStay(Collision collision) { }
private void OnCollisionExit(Collision collision) { }
源代码示例:
using UnityEngine;
using System.Collections;
using System.Collections.Generic;
public class Sphere : MonoBehaviour {
// Use this for initialization
void Start () {
}
// Update is called once per frame
void Update () {
}
//触发器不同于碰撞器,触发器可以进入而且触发器可以将物件隐藏,而且函数引入的参数不同,参数是Collider others
//要开启Is trigger选项才可以取消碰撞器属性,将其改为碰撞器
private void OnTriggerEnter(Collider others) //触发器的除触发检测
{
print("OnTriggler_Enter!");
print(others.tag);
print(others.name);
}
private void OnTriggerExit(Collider others)
{
print("OnTriggler_Exit!");
}
private void OnTriggledStay(Collider others)
{
print("OnTrigger_Stay!");
}
//碰撞器当物件与其接触的时候就直接触发,而且函数引入的参数是Collision collision(碰撞器)
//private void OnCollisionEnter(Collision collision) //碰撞器的检测
//{
// print(collision.collider);
// print(collision.collider.name);
// print(collision.collider.tag);
// //print("Collision_Enter!");
//}
//private void CollisionExit(Collision collision)
//{
// print("Collision_Exit!");
//}
//private void OnCollisionStay(Collision collision)
//{
// print("Collision_Stay!");
//}
<>----<>-----<>-------<>------<>--------<>-------<>----------<>-----<>-------<>------------<>
灯光的烘焙:
将灯光照亮的区域作为场景的贴图使用,当灯光被禁用的时候,灯光造成的效果依然存在;
首先选中需要烘焙的光源,选中更换光源的模式: Baking->Backed
Windows->lighting->Ambient GI->backed->Bulid
取消光的烘焙:
按照同样的顺序选择realtime即可,再继续Bulid
<>----<>-----<>-------<>------<>--------<>-------<>----------<>-----<>-------<>------------<>
人物移动脚本:
using UnityEngine;
using System.Collections;
public class hero : MonoBehaviour {
public NavMeshAgent agent;
// Use this for initialization
void Start () {
}
// Update is called once per frame
void Update () {
if(Input.GetMouseButtonDown(0))
{
Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
RaycastHit hit;
if(Physics.Raycast(ray,out hit))
{
//hit.point
print(hit.point);
agent.SetDestination(hit.point);
}
}
}
}
视角跟随脚本:
using UnityEngine;
using System.Collections;
public class FollowTarget : MonoBehaviour {
public Transform Succubus;
public Vector3 offset;
// Use this for initialization
void Start () {
offset = transform.position - Succubus.position;
}
// Update is called once per frame
void Update () {
transform.position = offset + Succubus.position;
}
}
骨骼动画(Animator)脚本:
using UnityEngine;
using System.Collections;
public class hero : MonoBehaviour {
public Animator anmi;
public NavMeshAgent agent;
// Use this for initialization
void Start () {
}
// Update is called once per frame
void Update () {
if(Input.GetMouseButtonDown(0))
{
Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
RaycastHit hit;
if(Physics.Raycast(ray,out hit))
{
//hit.point
print(hit.point);
agent.SetDestination(hit.point);
}
}
anmi.SetFloat("speed", agent.velocity.magnitude);
}
}