public override EFuncRet FuncExecHandler(HandleTarget Target, FuncData funcdata, FuncContext context)
    {
        try
        {
            ThriftVector3 pos = new ThriftVector3();
            pos.X = funcdata.ParamIntList[0];
            pos.Y = funcdata.ParamIntList[1];
            pos.Z = funcdata.ParamIntList[2];

            ThriftVector3 rot = new ThriftVector3();
            rot.X = 0;
            rot.Y = funcdata.ParamIntList[3];
            rot.Z = 0;

            ThriftVector3 scal = new ThriftVector3();
            scal.X = funcdata.ParamIntList[4];
            scal.Y = funcdata.ParamIntList[4];
            scal.Z = funcdata.ParamIntList[4];
            GameObject elem = EffectContainer.EffectFactory(funcdata.ParamStringList[0]);
            elem.transform.position    = pos.GetVector3();
            elem.transform.eulerAngles = rot.GetVector3();
            elem.transform.localScale  = scal.GetVector3();
        }
        catch
        {
        }

        return(EFuncRet.Continue);
    }
Example #2
0
    public override EFuncRet FuncExecHandler(HandleTarget Target, FuncData funcdata, FuncContext context)
    {
        try
        {
            int id = funcdata.ParamIntList[0];

            ThriftVector3 pos = new ThriftVector3();
            pos.X = funcdata.ParamIntList[1];
            pos.Y = funcdata.ParamIntList[2];
            pos.Z = funcdata.ParamIntList[3];

            ThriftVector3 rot = new ThriftVector3();
            rot.X = 0;
            rot.Y = funcdata.ParamIntList[4];
            rot.Z = 0;

            ThriftVector3 scal = new ThriftVector3();
            scal.X = funcdata.ParamIntList[5];
            scal.Y = funcdata.ParamIntList[5];
            scal.Z = funcdata.ParamIntList[5];

            TerrainManager.Instance.CreateNpcById(id, pos, rot, scal);
        }
        catch (Exception)
        {
            Debuger.LogWarning("error on create npc by function ");
        }
        return(EFuncRet.Continue);
    }
Example #3
0
    public void CreateNpcById(int id, ThriftVector3 pos, ThriftVector3 rot, ThriftVector3 scale)
    {
        //check
        if (m_NpcMap.ContainsKey(id))
        {
            Debuger.LogWarning("already exist npc id " + id);
            return;
        }
        Npc newNpc = new Npc();

        newNpc.Initialize(id);
        newNpc.GetTransformData().SetPosition(pos.GetVector3());
        newNpc.GetTransformData().SetRotation(rot.GetVector3());
        newNpc.GetTransformData().SetScale(scale.GetVector3());
        newNpc.SetAIStatus(true);
        m_NpcMap.Add(id, newNpc);
    }
Example #4
0
    private void DrawCharMove()
    {
        GUILayout.Space(5f);
        if (NGUIEditorTools.DrawHeader("路径节点"))
        {
            GUILayout.Space(5f);
            EditorGUILayout.BeginHorizontal();
            {
                GUILayout.Space(5f);
                EditorGUILayout.LabelField("节点数量:", GUILayout.Width(80f));
                GUILayout.Space(5f);
                m_nTargetNum = EditorGUILayout.IntField(m_nTargetNum, GUILayout.Width(50f));
                GUILayout.Space(15f);
                if (m_nTargetNum != m_nTargetLastNum)
                {
                    m_lstSpeedMoveList = new List <CharSpeedMove>();
                    m_lstLastTimePos   = new List <Vector3>();
                    ClearHintPoint();
                    m_lstHintPointList = new List <GameObject>();
                    for (int i = 0; i < m_nTargetNum; i++)
                    {
                        // data
                        ThriftVector3 pos = new ThriftVector3();
                        pos.SetVector3(new Vector3(0, 0, 0));
                        CharSpeedMove point = new CharSpeedMove();
                        point.Target = pos;
                        point.Speed  = 5;
                        m_lstSpeedMoveList.Add(point);
                        // state
                        m_lstLastTimePos.Add(new Vector3(0, 0, 0));
                        GameObject instance = GameObject.Instantiate(m_HintPointSource);
                        GameObject root     = GameObject.Find("Canvas");
                        if (root)
                        {
                            ComponentTool.Attach(root.transform, instance.transform);
                            Text txtComp = instance.GetComponentInChildren <Text>();
                            if (txtComp)
                            {
                                txtComp.text = (i + 1).ToString();
                            }
                        }
                        m_lstHintPointList.Add(instance);
                    }
                }
                EditorGUILayout.BeginVertical();
                {
                    if (m_lstSpeedMoveList != null && m_lstSpeedMoveList.Count > 0)
                    {
                        for (int i = 0; i < m_lstSpeedMoveList.Count; i++)
                        {
                            EditorGUILayout.BeginHorizontal();
                            {
                                GUILayout.Label("节点 " + (i + 1).ToString() + " : ", GUILayout.Width(80f));
                                Vector3 tmpPos = new Vector3(0, 0, 0);
                                if (m_lstSpeedMoveList[i].Target != null)
                                {
                                    tmpPos = m_lstSpeedMoveList[i].Target.GetVector3();
                                }

                                GUILayout.Label("x", GUILayout.Width(20f));
                                tmpPos.x = EditorGUILayout.FloatField(tmpPos.x);
                                GUILayout.Label("y", GUILayout.Width(20f));
                                tmpPos.y = EditorGUILayout.FloatField(tmpPos.y);
                                GUILayout.Label("z", GUILayout.Width(20f));
                                tmpPos.z = EditorGUILayout.FloatField(tmpPos.z);

                                if (m_lstLastTimePos[i] != tmpPos)
                                {
                                    m_lstSpeedMoveList[i].Target.SetVector3(tmpPos);
                                    //m_Config.LstTargets = m_lstTargetList;
                                }
                                GUILayout.Space(5f);
                                if (GUILayout.Button("调整位置", GUILayout.Width(100f)))
                                {
                                    m_nCurrentSettingPosTriggerIndex = i;
                                    ActionEditorRuntime.Instance.SetRaycastCallBack(SetTargetPos);
                                }
                                m_lstLastTimePos[i] = tmpPos;
                                GUILayout.Space(5f);
                                m_lstSpeedMoveList[i].Speed = EditorGUILayout.FloatField("速度:", (float)m_lstSpeedMoveList[i].Speed);
                            }
                            EditorGUILayout.EndHorizontal();
                        }
                    }
                }
                EditorGUILayout.EndVertical();
            }
            EditorGUILayout.EndHorizontal();
        }
        m_nTargetLastNum = m_nTargetNum;
    }