Bringe dem Esel mit Maria das Laufen bei

This commit is contained in:
Philipp Sander 2024-12-18 22:13:11 +01:00
parent 8f71e675c6
commit f610b443e2
12 changed files with 1327 additions and 24 deletions

View file

@ -0,0 +1,40 @@
using System;
using UnityEngine;
public class AblaufKleinerStern3 : MonoBehaviour
{
public GameObject mariaAufEsel;
private Action nextStep;
// Start is called once before the first execution of Update after the MonoBehaviour is created
void Start()
{
nextStep = AuftrittMariaUndJoseph;
}
// Update is called once per frame
void Update()
{
if (Input.GetKeyDown(KeyCode.Space)){
nextStep();
}
}
private void AuftrittMariaUndJoseph(){
mariaAufEsel.GetComponent<FigurMitBeinenBewegung>().GoToXPosition(1);
nextStep = AuftrittKleinerStern;
}
private void AuftrittKleinerStern(){
nextStep = EinStueckWeiter;
}
private void EinStueckWeiter(){
nextStep = Abgang;
}
private void Abgang(){
nextStep = delegate(){};
}
}

View file

@ -0,0 +1,2 @@
fileFormatVersion: 2
guid: be39dfb47ed7a3c0b89e66f9a0dbdf23

View file

@ -0,0 +1,72 @@
using System;
using System.Linq;
using Unity.Mathematics;
using UnityEngine;
public class FigurMitBeinenBewegung : MonoBehaviour
{
public GameObject[] wobblingParts;
public float[] wobblingMaxAngles;
public bool[] wobblingInversed;
public float wobblingPeriod;
public float movementVelocity;
private float movementStartTime;
private float targetPositionX;
private bool moving;
private bool wobbling;
private float lastPhase;
public void GoToXPosition(float x) {
targetPositionX = x;
movementStartTime = Time.time;
moving = true;
wobbling = true;
if (x > transform.position.x) {
transform.rotation = Quaternion.identity;
} else if (x < transform.position.x) {
transform.rotation = Quaternion.AngleAxis(180, Vector3.up);
}
}
// Start is called once before the first execution of Update after the MonoBehaviour is created
void Start()
{
targetPositionX = transform.position.x;
moving = false;
wobbling = false;
lastPhase = 0;
}
// Update is called once per frame
void Update()
{
if (moving){
float deltaX = Time.deltaTime * movementVelocity;
if (targetPositionX - transform.position.x < 0){
deltaX *= -1;
}
if ((transform.position.x - targetPositionX) * (transform.position.x + deltaX - targetPositionX) <= 0){
transform.position = new Vector2(targetPositionX, transform.position.y);
moving = false;
} else {
transform.position += Vector3.right * deltaX;
}
}
if (wobbling){
float phase = math.sin((Time.time - movementStartTime) * math.PI2 / wobblingPeriod);
if (!moving && phase * lastPhase <= 0){
wobbling = false;
phase = 0;
}
lastPhase = phase;
for (int i = 0; i < wobblingParts.Length; i++){
float angle = phase * wobblingMaxAngles[i];
if (wobblingInversed[i]){
angle *= -1;
}
wobblingParts[i].transform.localRotation = Quaternion.AngleAxis(angle, Vector3.forward);
}
}
}
}

View file

@ -0,0 +1,2 @@
fileFormatVersion: 2
guid: 8b2b3cf9e9fd7e2078e1e71f1cb3938a

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: e8b8435ddd7638d5a96da213464e814f
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View file

@ -120,8 +120,8 @@ TextureImporter:
y: 0 y: 0
width: 132 width: 132
height: 666 height: 666
alignment: 0 alignment: 9
pivot: {x: 0, y: 0} pivot: {x: 0.40496087, y: 0.89557004}
border: {x: 0, y: 0, z: 0, w: 0} border: {x: 0, y: 0, z: 0, w: 0}
customData: customData:
outline: [] outline: []
@ -138,7 +138,7 @@ TextureImporter:
customData: customData:
physicsShape: [] physicsShape: []
bones: [] bones: []
spriteID: spriteID: ee993b28a6a422463a15d88a2e57a5d4
internalID: 0 internalID: 0
vertices: [] vertices: []
indices: indices:
@ -147,7 +147,8 @@ TextureImporter:
secondaryTextures: [] secondaryTextures: []
spriteCustomMetadata: spriteCustomMetadata:
entries: [] entries: []
nameFileIdTable: {} nameFileIdTable:
Maria auf Esel - Eselbein1_0: -2314117792804241221
mipmapLimitGroupName: mipmapLimitGroupName:
pSDRemoveMatte: 0 pSDRemoveMatte: 0
userData: userData:

View file

@ -120,8 +120,8 @@ TextureImporter:
y: 0 y: 0
width: 131 width: 131
height: 643 height: 643
alignment: 0 alignment: 9
pivot: {x: 0, y: 0} pivot: {x: 0.69153017, y: 1.0462925}
border: {x: 0, y: 0, z: 0, w: 0} border: {x: 0, y: 0, z: 0, w: 0}
customData: customData:
outline: [] outline: []
@ -138,7 +138,7 @@ TextureImporter:
customData: customData:
physicsShape: [] physicsShape: []
bones: [] bones: []
spriteID: spriteID: c33502a410fe423538737deeb445325a
internalID: 0 internalID: 0
vertices: [] vertices: []
indices: indices:
@ -147,7 +147,8 @@ TextureImporter:
secondaryTextures: [] secondaryTextures: []
spriteCustomMetadata: spriteCustomMetadata:
entries: [] entries: []
nameFileIdTable: {} nameFileIdTable:
Maria auf Esel - Eselbein2_0: -6640877963095185480
mipmapLimitGroupName: mipmapLimitGroupName:
pSDRemoveMatte: 0 pSDRemoveMatte: 0
userData: userData:

View file

@ -120,8 +120,8 @@ TextureImporter:
y: 0 y: 0
width: 243 width: 243
height: 680 height: 680
alignment: 0 alignment: 9
pivot: {x: 0, y: 0} pivot: {x: 0.5258131, y: 0.94277257}
border: {x: 0, y: 0, z: 0, w: 0} border: {x: 0, y: 0, z: 0, w: 0}
customData: customData:
outline: [] outline: []
@ -138,7 +138,7 @@ TextureImporter:
customData: customData:
physicsShape: [] physicsShape: []
bones: [] bones: []
spriteID: spriteID: 87be1ac543cacb5d8bfd16021a4003b5
internalID: 0 internalID: 0
vertices: [] vertices: []
indices: indices:
@ -147,7 +147,8 @@ TextureImporter:
secondaryTextures: [] secondaryTextures: []
spriteCustomMetadata: spriteCustomMetadata:
entries: [] entries: []
nameFileIdTable: {} nameFileIdTable:
Maria auf Esel - Eselbein3_0: -4514926496411855965
mipmapLimitGroupName: mipmapLimitGroupName:
pSDRemoveMatte: 0 pSDRemoveMatte: 0
userData: userData:

View file

@ -120,8 +120,8 @@ TextureImporter:
y: 0 y: 0
width: 214 width: 214
height: 657 height: 657
alignment: 0 alignment: 9
pivot: {x: 0, y: 0} pivot: {x: 0.79311264, y: 1.015557}
border: {x: 0, y: 0, z: 0, w: 0} border: {x: 0, y: 0, z: 0, w: 0}
customData: customData:
outline: [] outline: []
@ -138,7 +138,7 @@ TextureImporter:
customData: customData:
physicsShape: [] physicsShape: []
bones: [] bones: []
spriteID: spriteID: 33b614e7f023635b39d50ba10fe0fd46
internalID: 0 internalID: 0
vertices: [] vertices: []
indices: indices:
@ -147,7 +147,8 @@ TextureImporter:
secondaryTextures: [] secondaryTextures: []
spriteCustomMetadata: spriteCustomMetadata:
entries: [] entries: []
nameFileIdTable: {} nameFileIdTable:
Maria auf Esel - Eselbein4_0: 2075278806595872617
mipmapLimitGroupName: mipmapLimitGroupName:
pSDRemoveMatte: 0 pSDRemoveMatte: 0
userData: userData:

View file

@ -120,8 +120,8 @@ TextureImporter:
y: 643 y: 643
width: 798 width: 798
height: 1088 height: 1088
alignment: 0 alignment: 9
pivot: {x: 0, y: 0} pivot: {x: 0.24846677, y: 0.51729584}
border: {x: 0, y: 0, z: 0, w: 0} border: {x: 0, y: 0, z: 0, w: 0}
customData: customData:
outline: [] outline: []
@ -138,7 +138,7 @@ TextureImporter:
customData: customData:
physicsShape: [] physicsShape: []
bones: [] bones: []
spriteID: spriteID: 38df9f30a8a6cb2b780fde372695ff18
internalID: 0 internalID: 0
vertices: [] vertices: []
indices: indices:
@ -147,7 +147,8 @@ TextureImporter:
secondaryTextures: [] secondaryTextures: []
spriteCustomMetadata: spriteCustomMetadata:
entries: [] entries: []
nameFileIdTable: {} nameFileIdTable:
Maria auf Esel - Eselkopf_0: 2698551319815246180
mipmapLimitGroupName: mipmapLimitGroupName:
pSDRemoveMatte: 0 pSDRemoveMatte: 0
userData: userData:

View file

@ -120,8 +120,8 @@ TextureImporter:
y: 379 y: 379
width: 282 width: 282
height: 750 height: 750
alignment: 0 alignment: 9
pivot: {x: 0, y: 0} pivot: {x: 0.7446762, y: 0.90981036}
border: {x: 0, y: 0, z: 0, w: 0} border: {x: 0, y: 0, z: 0, w: 0}
customData: customData:
outline: [] outline: []
@ -138,7 +138,7 @@ TextureImporter:
customData: customData:
physicsShape: [] physicsShape: []
bones: [] bones: []
spriteID: spriteID: d52d92352666e59cea3e14ed23318bfa
internalID: 0 internalID: 0
vertices: [] vertices: []
indices: indices:
@ -147,7 +147,8 @@ TextureImporter:
secondaryTextures: [] secondaryTextures: []
spriteCustomMetadata: spriteCustomMetadata:
entries: [] entries: []
nameFileIdTable: {} nameFileIdTable:
Maria auf Esel - Schwanz_0: 2774470072328476467
mipmapLimitGroupName: mipmapLimitGroupName:
pSDRemoveMatte: 0 pSDRemoveMatte: 0
userData: userData: