public void PushHit(GameObject go, Vector3 hit_dir) { LeavesPusherData leavesPusherData = this.GetDataByObject(go); if (leavesPusherData != null) { leavesPusherData.m_HitAxis = Vector3.Cross(hit_dir, Vector3.up); leavesPusherData.m_HitTime = Time.time; } else { float def_shake_mul = 0f; float def_shake_time_mul = 0f; PushLeaves component = go.GetComponent <PushLeaves>(); List <Material> materialsToModify = component.GetMaterialsToModify(); int num = 0; if (num < materialsToModify.Count) { Material material = materialsToModify[num]; if (material.HasProperty(LeavesPusher.s_ShaderPropertyShakeAdd)) { def_shake_mul = material.GetFloat(LeavesPusher.s_ShaderPropertyShakeAdd); } if (material.HasProperty(LeavesPusher.s_ShaderPropertyShakeTimeAdd)) { def_shake_time_mul = material.GetFloat(LeavesPusher.s_ShaderPropertyShakeTimeAdd); } } leavesPusherData = new LeavesPusherData(go, go.transform.rotation, Player.Get().transform.right, 0f, go.GetComponent <PushLeaves>(), def_shake_mul, def_shake_time_mul); leavesPusherData.m_HitAxis = Vector3.Cross(hit_dir, Vector3.up); leavesPusherData.m_HitTime = Time.time; this.m_Data.Add(leavesPusherData); } }
private LeavesPusherData GetDataByObject(GameObject go) { for (int i = 0; i < this.m_Data.Count; i++) { LeavesPusherData leavesPusherData = this.m_Data[i]; if (leavesPusherData.m_Object.Equals(go)) { return(leavesPusherData); } } return(null); }