Esempio n. 1
0
    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);
        }
    }
Esempio n. 2
0
 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);
 }