public void OnSceneGUI() { AniFxMgr aniFxMgr = target as AniFxMgr; Transform root = aniFxMgr.transform.parent; foreach (AniFxGroup g in aniFxMgr.m_groups) { foreach (AniFx fx in g.fxs) { if (!fx.IsDrawGizmos) { continue; } if (fx.type == AniFx.enCreateType.bone)//绑定骨骼 { Transform t = fx.GetTarget(root); Vector3 worldPosOld = t.TransformPoint(fx.offset); Handles.Label(worldPosOld, fx.prefab == null ? "" : fx.prefab.name); Vector3 worldPosNew = Handles.PositionHandle(worldPosOld, t.rotation * Quaternion.Euler(fx.euler)); if (worldPosNew != worldPosOld) { fx.offset = t.InverseTransformPoint(worldPosNew); EditorUtility.SetDirty(target); } } } } }
void Awake() { #if ART_DEBUG m_root = this.transform; m_cc = GetComponent <CharacterController>(); m_ani = this.transform.Find("model").GetComponent <AniFxMgr>(); m_seeker = GetComponent <Seeker>(); m_rolePath = new RolePath(m_seeker, m_root); m_states[enState.free] = new SimpleRoleFreeState(this); m_states[enState.move] = new SimpleRoleMoveState(this); m_states[enState.attack] = new SimpleRoleAttackState(this); m_states[enState.behit] = new SimpleRoleBehitState(this); GotoState(enState.free, null); #else this.enabled = false;//这个类是测试用的,游戏运行时屏蔽 #endif }