public virtual void Init(CharacterAttr attr) { this.attr = attr; this.characterid = attr.id; this.sceneid = attr.mapid; _transform = new RoleTransform(); }
public void Init(RoleTransform transform, LunaNavmeshQuery navmeshQuery) { _navQuery = navmeshQuery; _transform = transform; if (_navQuery != null) { _navMeshQuery = _navQuery._navMeshQuery; filter = _navQuery.filter; crowd = _navQuery.Crowd; param = new CrowdAgentParams { Radius = Radius, Height = Height, MaxAcceleration = MaxAcceleration, MaxSpeed = MaxSpeed, CollisionQueryRange = CollisionQueryRange, PathOptimizationRange = PathOptimizationRange, UpdateFlags = UpdateFlags, ObstacleAvoidanceType = ObstacleAvoidanceType, SeparationWeight = SeparationWeight }; Luna3D.Vector3 pos = _transform.GetPosition(); AgentId = _navQuery.Crowd.AddAgent(new[] { pos.x, pos.y, pos.z }, param); //ResetTarget(); _crowdAgent = crowd.GetAgent(AgentId); float[] resetpos = _crowdAgent.npos; _transform.SetPosition(new Vector3(resetpos[0], resetpos[1], resetpos[2])); } else { System.Console.WriteLine("Scene does not have a Nav Mesh Query, one must be added."); } }