整型属性的值。
当propertyType 为 SerializedPropertyType.Integer 且底层类型为有符号 32 位或更小(例如 sbyte、short 和 int)时,它包含有效值。它也适用于小型无符号类型(ushort 和 byte)。对于 32 位无符号字段,请改用 uintValue。如果您正在访问 64 位整数,请改用 longValue 或 ulongValue。
为 intValue 分配值时,该值将在属性声明类型的范围内进行钳位。例如,声明为字节的属性在 0 到 255 之间进行钳位。
其他资源:intValue、uintValue、longValue、propertyType、SerializedPropertyType.Integer。
using System; using System.Text; using UnityEditor; using UnityEngine;
public class IntegerTypeExample : ScriptableObject { public sbyte m_sbyte = SByte.MinValue; public byte m_byte = Byte.MaxValue; public short m_short = Int16.MinValue; public ushort m_ushort = UInt16.MaxValue; public int m_int = Int32.MinValue; public uint m_uint = UInt32.MaxValue; public long m_long = Int64.MinValue; public ulong m_ulong = UInt64.MaxValue;
[MenuItem("Example/SerializedProperty Integer Access APIs")] static void TestMethod() { // This example demonstrates how to access the full range of each C# integer type via SerializedProperty
IntegerTypeExample obj = ScriptableObject.CreateInstance<IntegerTypeExample>(); SerializedObject sObj = new SerializedObject(obj);
var sb = new StringBuilder(); sb.AppendLine($"m_sbyte : {sObj.FindProperty("m_sbyte").intValue}"); sb.AppendLine($"m_byte : {sObj.FindProperty("m_byte").uintValue}"); // or intValue sb.AppendLine($"m_short : {sObj.FindProperty("m_short").intValue}"); sb.AppendLine($"m_ushort : {sObj.FindProperty("m_ushort").uintValue}"); // or intValue sb.AppendLine($"m_int : {sObj.FindProperty("m_int").intValue}"); sb.AppendLine($"m_uint : {sObj.FindProperty("m_uint").uintValue}"); sb.AppendLine($"m_long : {sObj.FindProperty("m_long").longValue}"); sb.AppendLine($"m_ulong : {sObj.FindProperty("m_ulong").ulongValue}");
Debug.Log(sb.ToString()); } }