public override void Execute(Entity context) { Transform transform = context.transform; direction = context.GetMedrashPosition() - transform.position; direction.y = 0.0f; context.SetDirection(direction); }
public override void Execute(Entity context) { CharacterController controller = context.GetComponent<CharacterController>(); transform = controller.transform; //transform = context.transform; direction = context.GetMedrashPosition() - transform.position; direction.y = 0.0f; tangent.x = clockwise*direction.z; tangent.z = -clockwise*direction.x; tangent.y = 0.0f; if (context.DistanceToMainCharacter() > context.GetCloseRadius()) direction = tangent + 0.01f*(direction.magnitude - context.GetFarRadius()) * direction; else direction = tangent + 0.1f*(direction.magnitude - context.GetFarRadius()) * direction; RaycastHit hitInfo; if (Physics.Raycast(transform.position + controller.center, direction, out hitInfo, 3.0f)) { clockwise *= -1; direction *= -1; } context.SetDirection(direction); context.SetRunAnimation(); }
public override void Execute(Entity context) { direction = context.ReturnPlace() - context.transform.position; direction.y = 0; context.SetDirection(direction); context.SetWalkAnimation(); }
public override void Enter(Entity context) { transform = context.transform; direction = context.GetMedrashPosition() - transform.position; direction.y = 0.0f; context.SetSpeed(context.GetBaseSpeed()*1.5f); context.SetDirection(direction); }
public override void Execute(Entity context) { target = context.medrash.transform; transform = context.transform; direction = target.position - transform.position; direction.y = 0; direction = -5.0f*direction.normalized; context.SetDirection(direction); }
public override void Enter(Entity context) { context.SetSpeed(context.GetBaseSpeed()); float r = Random.value; rotateAngle = 120.0f*(2*r - 1)*Mathf.PI/180.0f; if (r < 0.4) context.RotateBy(rotateAngle); else if (r < 0.8) context.RotateBy(-rotateAngle); direction = context.transform.forward; direction.y = 0.0f; context.SetDirection(direction); }
public override void Execute(Entity context) { transform = context.transform; direction = context.GetMedrashPosition() - transform.position; direction.y = 0.0f; tangent.x = clockwise*direction.z; tangent.z = -clockwise*direction.x; tangent.y = 0.0f; direction = tangent + (direction.magnitude - context.GetFarRadius()) * direction; if (Physics.Raycast(transform.position, direction, context.GetCloseRadius())) clockwise *= -1; context.SetDirection(direction); context.SetRunAnimation(); }
public override void Execute(Entity context) { context.SetDirection(Vector3.zero); context.SetFace(context.transform.right); }
public void EntityEnter(uint id, Entity.Type type, uint subType, Vector3 position, float direction) { Entity entity = null; switch (type) { case Entity.Type.Player: case Entity.Type.NPC: { RoleInfo info = Core.Database.GetRoleInfo(subType); GameObject go = Core.Database.LoadResource("Roles/" + info.res); go.transform.localScale = Vector3.one * info.scale; Role role = go.AddComponent <Role>(); go.AddComponent <RoleAnimator>(); RoleAgent agent = go.AddComponent <RoleAgent>(); agent.RoleId = id; CapsuleCollider collider = go.AddComponent <CapsuleCollider>(); collider.radius = 0.5f; collider.height = 2; collider.center = new Vector3(0, 1.1f, 0); if (Core.Account.role == null) { Core.Account.role = role; m_camera.GetComponent <CameraController>().target = go.transform; go.AddComponent <RoleController>(); Rigidbody rigidbody = go.AddComponent <Rigidbody>(); rigidbody.freezeRotation = true; rigidbody.useGravity = false; } entity = role; } break; case Entity.Type.Teleporter: { GameObject go = Core.Database.LoadResource("Entities/Teleporter"); entity = go.AddComponent <Teleporter>(); } break; case Entity.Type.Item: { GameObject go = Core.Database.LoadResource("Entities/Bottle"); entity = go.AddComponent <DropItem>(); } break; default: break; } if (entity != null) { entity.SetInfo(id, type, subType); entity.SetPosition(position); entity.SetDirection(direction); AddEntity(entity); } }