/*This script has been, partially or completely, generated by the Fungus.GenerateVariableWindow*/ using UnityEngine; namespace Fungus { // /// Get or Set a property of a Matrix4x4 component /// [CommandInfo("Property", "Matrix4x4", "Get or Set a property of a Matrix4x4 component")] [AddComponentMenu("")] public class Matrix4x4Property : BaseVariableProperty { //generated property public enum Property { M00, M10, M20, M30, M01, M11, M21, M31, M02, M12, M22, M32, M03, M13, M23, M33, Inverse, Transpose, Rotation, LossyScale, IsIdentity, Determinant, } [SerializeField] protected Property property; [SerializeField] protected Matrix4x4Data matrix4x4Data; [SerializeField] [VariableProperty(typeof(FloatVariable), typeof(QuaternionVariable), typeof(Vector3Variable), typeof(BooleanVariable), typeof(Matrix4x4Variable))] protected Variable inOutVar; public override void OnEnter() { var iof = inOutVar as FloatVariable; var ioq = inOutVar as QuaternionVariable; var iov = inOutVar as Vector3Variable; var iob = inOutVar as BooleanVariable; var iom4 = inOutVar as Matrix4x4Variable; var target = matrix4x4Data.Value; switch (getOrSet) { case GetSet.Get: switch (property) { case Property.M00: iof.Value = target.m00; break; case Property.M10: iof.Value = target.m10; break; case Property.M20: iof.Value = target.m20; break; case Property.M30: iof.Value = target.m30; break; case Property.M01: iof.Value = target.m01; break; case Property.M11: iof.Value = target.m11; break; case Property.M21: iof.Value = target.m21; break; case Property.M31: iof.Value = target.m31; break; case Property.M02: iof.Value = target.m02; break; case Property.M12: iof.Value = target.m12; break; case Property.M22: iof.Value = target.m22; break; case Property.M32: iof.Value = target.m32; break; case Property.M03: iof.Value = target.m03; break; case Property.M13: iof.Value = target.m13; break; case Property.M23: iof.Value = target.m23; break; case Property.M33: iof.Value = target.m33; break; case Property.Rotation: ioq.Value = target.rotation; break; case Property.LossyScale: iov.Value = target.lossyScale; break; case Property.IsIdentity: iob.Value = target.isIdentity; break; case Property.Determinant: iof.Value = target.determinant; break; case Property.Inverse: iom4.Value = target.inverse; break; case Property.Transpose: iom4.Value = target.transpose; break; default: Debug.Log("Unsupported get or set attempted"); break; } break; case GetSet.Set: switch (property) { case Property.M00: target.m00 = iof.Value; break; case Property.M10: target.m10 = iof.Value; break; case Property.M20: target.m20 = iof.Value; break; case Property.M30: target.m30 = iof.Value; break; case Property.M01: target.m01 = iof.Value; break; case Property.M11: target.m11 = iof.Value; break; case Property.M21: target.m21 = iof.Value; break; case Property.M31: target.m31 = iof.Value; break; case Property.M02: target.m02 = iof.Value; break; case Property.M12: target.m12 = iof.Value; break; case Property.M22: target.m22 = iof.Value; break; case Property.M32: target.m32 = iof.Value; break; case Property.M03: target.m03 = iof.Value; break; case Property.M13: target.m13 = iof.Value; break; case Property.M23: target.m23 = iof.Value; break; case Property.M33: target.m33 = iof.Value; break; default: Debug.Log("Unsupported get or set attempted"); break; } break; default: break; } Continue(); } public override string GetSummary() { if (inOutVar == null) { return "Error: no variable set to push or pull data to or from"; } return getOrSet.ToString() + " " + property.ToString(); } public override Color GetButtonColor() { return new Color32(235, 191, 217, 255); } public override bool HasReference(Variable variable) { if (matrix4x4Data.matrix4x4Ref == variable || inOutVar == variable) return true; return false; } } }