101射线检测之基本使用
射线检测的目的是:检测射线在发射过程中有没有碰撞到有碰撞器的游戏物体
可以判断在射线长度范围内游戏物体的属性
还可以得到射线碰撞的位置(射线检测可以检测2D和3D)
代码:
void Update()
{
Ray ray=new Ray(transform.position+transform.forward,transform.forward);
bool isCollider=Physics.Raycast(ray);
Debug.Log(isCollider);
}
此代码不能判断出碰撞物体以及碰撞位置
102关于2D射线检测和检测碰撞到所有物体
void Update()
{
Ray ray=new Ray(transform.position+transform.forward,transform.forward);
RaycastHit hit;
bool isCollider=Physics.Raycast(ray,out hit);
Debug.Log(isCollider);
Debug.Log(hit.collider);判断出碰撞到哪个碰撞器
//Debug.Log(hit.collider.gameObject);//可以判断出碰撞到哪个游戏物体
Debug.Log(hit.point);//可以判断出碰撞到的点
}
103-关于2D射线检测和检测碰撞到所有物体
同3D,只把3D改成2D即可
104-通过拖拽的方式监听UGUI的事件
UGUI 事件监听
1,拖拽
2,代码添加
3,通过实现接口
105-通过代码添加对UGUI控件的事件监听
public GameObject btnGameObject;
void start(){
btnGameObject.GetComponent().onClick.Addlistener(this.ButtonOnClick);
}
void ButtonOnClick(){
Debug.Log(“ButtonOnClick”);
}
因为button是UI,所以要在上面定义一句using UnityEngine UI;
通过UI组件添加事件的
106-跟鼠标相关的事件接口的实现
PointerDown:指针按下
OnPointerDown:鼠标按下触发
视线监听是通过射线检测进行监听的
using UnityEngine UI;
using UnityEngine EventSystem;
using System;
Public void OnPointerDown(PointerEventData eventData)
{
Debug.Log(“OnPointerDown”)
}
107-跟拖拽相关的事件接口的实现
IBeignDragHandler:开始拖拽
IDragHandler:拖拽中
IEndDragHandler:拖拽结束
108-如何通过WWW下载图片
WWW支持http://https://file(注:指本地文件)://ftp://(注:仅限于匿名下载)
图片是www.texture,文本是:www.text,www.progress取得下载进度
isDone判断是否下载完成
109-Touches触摸事件
触摸事件主要在手机上使用的
Touches获取到当前触摸的数量
GetTouch用来return当前的触摸事件
110-关于Camera组件的作用和一些属性介绍
Camera组件控制人物视野
锥形体就是视野
是一个平头锥体
当前三角形上面的边到下面的点大概有1000米
111-使用Camera把屏幕坐标转换成射线
ScreenPointToRay:将屏幕坐标转换成射线
利用射线检测碰撞,判断鼠标点击到了哪个游戏物体身上
112-角色控制器CharacterController的使用
Center:用来获取自身的位置
Height:用来获取自身的高度
isGrounded:用来判断自身是否处于地面
113-Mesh的设置
Mesh控制物体的显示
Mesh与Material的区别:
Mesh是网格,控制物体的外观
Material是材质,贴到Mesh所指定的外观上
114-Material材质类
通过Shader修改使用的形状
通过MainTexture修改主材质
通过Color修改颜色
115-Animator简介
Animator:控制动画系统
Speed用来调节整个状态机的速度
116-Unity API方法变更1
GetComponent() 代替 rigidbody2D
GetComponent() 代替 rigidbody
GetComponent() 代替 audio
117-Unity API方法变更2-粒子系统变更
Unity 5.3:
ParticleSystem main = smokePuff.GetComponent();
main.startColor
Unity 5.5+:
ParticleSystem.MainModule main = smokePuff.GetComponent().main;
main.startColor
isEmitting:是否发射
isPaused:是否暂停
isPlaying:是否正在播放
isStopped:是否停止
main用来访问粒子系统的设置
118-Unity API方法变更3-场景切换相关API变更
SceneManagement 代替 Application
OnLevelWasLoaded() 在 Unity 5中被弃用了。