2. 从射击到命中的整个处理流程,射击特效的制作原理
[创建子弹]
Cache对象
ObjectCache类
var prefab : GameObject;
var cacheSize : int = 10;
Spawner.js
var caches : ObjectCache[];
function Awake () {
caches.Initialize ();
}
static function Spawn(...);
static function Destroy(...);
[发射子弹的时机]
WeaponSlot
TriggerOnMouseOrJoystick.js
public var mouseDownSignals : SignalSender;
public var mouseUpSignals : SignalSender;
SignalSender.js
public function SendSignals (sender : MonoBehaviour)
public var receivers : ReceiverItem[];
AutoFire.js
function Update ()
if (firing) {
if (Time.time > lastFireTime + 1 / frequency) {
var go : GameObject = Spawner.Spawn (bulletPrefab, spawnPoint.position, spawnPoint.rotation * coneRandomRotation) as GameObject;
【地表水面与反射】
[相关GameObject]
polySurface5097 地表
RealtimeReflectionInWaterFlow.shader 处理水面模拟和反射的shader
Main CameraReflectionMain Camera 反射摄像机
RealtimeReflectionReplacement.shader 备用的shader方案
Main Camera 主摄像机
ReflectionFx.cs 生成反射贴图的脚本
public System.String reflectionSampler = "_ReflectionTex"; 反射贴图
reflectionMask
[关键代码]
ReflectionFx.cs
public Transform[] reflectiveObjects;
private Camera reflectionCamera;
public LayerMask reflectionMask;
计算反射摄像机的位置和朝向,将变换合并为反射矩阵
渲染到反射贴图