public void AnimateTo(DungeonEntityUnity entity, float duration)
    {
        animating = true;

        this.newCameraPosition = entity.trans.position + moveDelta;
        this.newLookAtPosition = entity.trans.position + lookAtDelta;

        this.newEntity         = entity;
        this.animationDuration = duration;
        this.animationTime     = 0.0f;
    }
    public void AnimateTo(Vector3 newCameraPosition, Vector3 newLookAtPosition, float duration)
    {
        animating = true;

        this.newCameraPosition = newCameraPosition;
        this.newLookAtPosition = newLookAtPosition;

        this.animationDuration = duration;
        this.animationTime     = 0.0f;
        newEntity = null;
    }
Ejemplo n.º 3
0
    private void AddEntity(DungeonEntity entity)
    {
        DungeonEntityUnity entityUnity = entityFactory.CreateEntity(entity);

        if (entityUnity != null)
        {
            entityUnity.trans.parent = entitiesContainer;

            entities.Add(entity.Id, entityUnity);

            entityUnity.Init(this, entity);

            if (entity.Type == DungeonEntityType.Avatar)
            {
                avatar = (DungeonEntityAvatarUnity)entityUnity;
            }
        }
        else
        {
            Debug.LogWarning("No unity entity created for entity type: " + entity.Type);
        }
    }
    public void Update()
    {
        if (entity)
        {
            if (firstPerson)
            {
                trans.position = entity.trans.position + firstPersonDelta;
                trans.LookAt(trans.position + entity.trans.forward);
            }
            else
            {
                lastPosition       = entity.trans.position + moveDelta;
                lastLookAtPosition = entity.trans.position + lookAtDelta;

                trans.position = lastPosition;
                trans.LookAt(lastLookAtPosition);
            }
        }
        else if (animating)
        {
            float t = animationTime / animationDuration;

            trans.position = Vector3.Lerp(lastPosition, newCameraPosition, t);
            trans.LookAt(Vector3.Lerp(lastLookAtPosition, newLookAtPosition, t));

            if (t >= 1.0f)
            {
                animating          = false;
                lastPosition       = newCameraPosition;
                lastLookAtPosition = newLookAtPosition;
                entity             = newEntity;
            }

            animationTime += Time.deltaTime;
        }
    }
 public DungeonEventHandlerEntityRotated(DungeonUnity dungeon, DungeonEventEntityRotated dungeonEvent)
 {
     entity     = dungeon.GetEntityUnity(dungeonEvent.entity);
     rotateFrom = dungeon.GetWorldRotation(dungeonEvent.from);
     rotateTo   = dungeon.GetWorldRotation(dungeonEvent.to);
 }
Ejemplo n.º 6
0
 public void DestroyEntity(DungeonEntityUnity entityUnity)
 {
     GameObject.Destroy(entityUnity.gameObject);
 }
Ejemplo n.º 7
0
 public DungeonEventHandlerEntityMoved(DungeonUnity dungeon, DungeonEventEntityMoved dungeonEvent)
 {
     entity   = dungeon.GetEntityUnity(dungeonEvent.entity);
     moveFrom = dungeon.GetWorldPosition(dungeonEvent.from);
     moveTo   = dungeon.GetWorldPosition(dungeonEvent.to);
 }