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);
                    }
                }
            }
        }
    }
Example #2
0
    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
    }