Jump to content
Unity Insider Forum

erixx

Members
  • Posts

    134
  • Joined

  • Last visited

erixx's Achievements

Advanced Member

Advanced Member (3/3)

6

Reputation

  1. Hi. Ich würde gerne eine Brücke über einem Fluss platzieren, und dabei ihre Y Rotation automatisch an die Flussrichtung anpassen, und zwar im 90 Grad Winkel. Der Fluss liegt auf einer Y Höhe von 0, alles was darüber is, ist Land. Wie könnte man das angehen?
  2. erixx

    Klasse klonen

    Hi, ich würde gerne eine Klasse klonen, damit ich eine unabhängige Kopie erhalte. Im Moment schaut das so aus: public static Skill Clone(Skill original){ Skill clone=new Skill(); clone.skillTarget=original.skillTarget; clone.skillName=original.skillName; clone.skillTooltip=original.skillTooltip; clone.skillLevel=original.skillLevel; clone.skillMainType=original.skillMainType; clone.icon=original.icon; clone.bookIcon=original.bookIcon; clone.skillCostType=original.skillCostType; clone.skillCost=original.skillCost; clone.skillCostAdd=original.skillCostAdd; clone.skillCooldown=original.skillCooldown; clone.skillCurCooldown=original.skillCurCooldown; clone.skillCooldownAdd=original.skillCooldownAdd; clone.usingCooldown=original.usingCooldown; clone.skillRangeType=original.skillRangeType; clone.skillRange=original.skillRange; clone.skillType=original.skillType; clone.skillDamageMultiplier=original.skillDamageMultiplier; clone.levelTypeDamageMultiplier=original.levelTypeDamageMultiplier; clone.requiredWeapon=original.requiredWeapon; clone.gotRightWeapon=original.gotRightWeapon; clone.applyType=original.applyType; clone.applyAmount=original.applyAmount; clone.applyAmountAdd=original.applyAmountAdd; clone.skillCastParticle=original.skillCastParticle; clone.skillDuration=original.skillDuration; clone.skillDurationAdd=original.skillDurationAdd; clone.statusEffect=original.statusEffect; clone.statusEffectChance=original.statusEffectChance; clone.statusEffectChanceAdd=original.statusEffectChanceAdd; clone.statusEffectDuration=original.statusEffectDuration; clone.statusEffectDurationAdd=original.statusEffectDurationAdd; return clone; } Nun meine Frage dazu, geht das nicht auch einfacher?
  3. Hallo. Kurze Beschreibung: Die Spielwelt besteht aus sehr vielen kleinen Wuerfeln, die in 3d zufaellig, aber mit seed und per Perlin Noise generiert und angeordnet werden und kann vom Spieler veraendert werden. Jeder Wuerfel hat einen Zustand (Begeh+Bebaubar) und kennt alle Nachbarswuerfel (links, rechts, oben, unten, vorne, hinten) und deren Zustaende und kann auch auf die Nachbarn der Nachbarn usw zugreifen. Wenn auf einem Wuerfel sich ein anderer Wuerfel, oder ein anderes Objekt (nicht Spieler oder NPCs) befindet, wird der Zustand in Nichtbebau+gehbar geaendert. Wuerfel, die an allen 6 Seiten Nachbarn haben, werden primaer deaktiviert. So nun zum Pathfinding. Das laeuft in etwa so ab: Der PC/NPC kennt den Wuerfel der unter ihm ist. Und er kennt sein Laufziel, also wohin er letztendlich laufen will. Nun fragt er seinen "Unterwuerfel" nach den Nachbarn, wenn sie begehbar sind, werden sie als moegliche Laufwuerfel genommen. Dann wird die Distanz aller moeglichen Laufwuerfel und dem Hauptziel genommen. Der Wuerfel, der die kuerzeste Distanz zum Hauptziel hat, ist das neue Zwischenziel des PCs/NPCs. Der PC/NPC darf 1 Weurfel nach oben/unten gehen. Das wird abgefragt, indem die 4 Nachbarswuerfel des Hauptwuerfels(der Wuerfel unter dem PC/NPC) ihren Ober/Unterwuerfel nach Begeh+Bebaubar ueberpruefen. Wenn ich nun ueberpruefen will, ob links ein begehbarer Wuerfel ist, der 1 Wuerfelfeld unter mit ist, laeuft das so ab: Hauptwuerfel->Links->Runter; Wenn Hauptwuerfel keinen links von sich hat: Hauptwuerfel->Runter->Links; Wenn sich der PC/NPC am Rand der Map befindet, auf dem die Wuerfelhoehe nur noch 1 Wuerfel hoch ist, komme ich nicht mehr an die lezten Wuerfel ran, da sich keine weiteren darueber, darunter, oder davor befinden. Das Problem ist, wenn links vom Hauptwuerfel kein Wuerfel ist, und unter dem Hauptwuerfel auch keiner komme ich nicht mehr an den zu ueberpruefenden Wuerfel ran. Dh. beim Wuerfel Rauflaufen klappt das Prima, nur beim Runterlaufen nicht. Funktioniert: ---[x] [x][x] Funktioniert nicht: ---[x] [x] Ich hoffe, ich konnte mich ein wenig verstaendlich ausdruecken, und frage euch, wie ihr das loesen wuerdet. LG
  4. Hi, ich würde gerne den ersten Großbuchstaben in einer String finden und durch den selben in klein ersetzen. zB: var itemname: String= "Dark Shield of Stones"; wird durch itemname= "Burning " + itemname zu "Burning dark Shield of Stones" Nur müsste der erste Buchstabe vom ursprünglichen Itemnamen klein werden. Wie ist sowas möglich? Mit contains(ABCD usw) würden ja alle Großbuchstaben ersetzt werden. Oder soll ich alles groß schreiben, da es sich ja um einen "Eigennamen" handelt? LG
  5. Hi, ich versuche, ein Material zufällig zu erzeugen, und es in die ItemDatabase einzufügen und dort festzuhalten. Doch in der ItemDatabase habe ich nur "type missmatch" stehen, und wenn das Spiel beendet wird, "missing material". Hier mal mein Script zum Erzeugen: tempMat=new UnityEngine.Material(Shader.Find(shaderName)); var randomHeight:float=Random.Range(0.01f,0.1f); var randomBaseTexture:Texture2D= baseTextures[Random.Range(1,baseTextures.length)]; var randomHeightTexture:Texture2D=heightTextures[Random.Range(1,heightTextures.length)]; tempMat.SetTexture("_BaseTex",randomBaseTexture); tempMat.SetTexture("_HeightTex",randomHeightTexture); tempMat.SetFloat("_Height", randomHeight); item.itemMaterial = tempMat; Die erzeugten Materials kann ich sehen, schauen gut aus, doch sie sind nicht in der itemDatabase drin. Muss ich evtl nicht nur die Mats selber, sondern auch deren erzeugten Einstellungen speichern? Oder sie als Asset speichern? Doch ich würde nur ungern jedes Material auch noch als Asset speichern, dann doch lieber nur die erzeugten Werte, und diese dann laden. Liegt "type missmatch" am "UnityEngine.Material"? Doch nur so kann ich auf die Materalien zugreifen, da ich Material schon als eigene Klasse verwendet habe. Edit: Ich werde nur die Eigenschaften der Mats erzeugen, und diese in der Database speichern. Erst beim Anzeigen/Erstellen der 3D Objekte werde ich sie abfragen. Somit sollte es weniger Leistung in Anspruch nehmen.
  6. Danke für die tollen Ideen. Das klingt gut, irgend eine dunkle,böse Macht, irgendwas was direkt das Leben absaugt, wogegen es keine Resistenzen gibt, oder nur sehr wenige. Kombinationen klingen auch sehr interessant, da kann dann zB ein Bogen meherere Grundelemetare haben, wie Feuer und Wind, und könnte dann dem Gegner Verbrennungen hinzufügen und/oder ihn zurückstoßen. Oder man kombiniert die Skills, so wie es the-grandmaster meinte. Eis könnte Feuer löschen, zB Fackeln, oder brennende Flächen, die beim Betreten Schaden verursachen würden. Oder unbegehbare Wasserflächen ( reissende Flüsse) einfrieren, und so begehbar machen. Feuer könnte Fackeln oder Lagerfeur (brennbare Obkelkte) anzünden, zum Brutzeln von Fleisch oder zum aufwärmen, Kraft tanken, oder falls es mal sehr dunkel ist. Wind könnte noch Objekte beiseite wirbeln, die einem gerade den Weg versperren. Müsste dann natürlich ausgeglichen sein, also dass jedes Elemtar einmal Schaden verursacht, einen Statuseffekt auslösen kann,und eine dritte Fähigkeit besitzt, die die Spielwelt beeinflusst bzw verändernt, oder dem Spieler einfach Vorteile verschaffen kann.
  7. Hihi, das mit der Frisur gefällt mir, das nehm ich Danke dir!
  8. Hallo, bisher habe ich folgende Elementare und deren Effekte: Physisch: kann kritischen Schaden verursachen; Feuer: kann Verbrennungen (DoT) verursachen; Eis: kann verlangsamen oder einfrieren; Erde: kann vergiften(DoT); Blitz: kann stunnen; und nun würde ich gerne ein weiteres (magisch) Elementar einfügen, doch mir fällt kein Effekt dazu ein. Würde mich über Vorschläge freuen Liebe Grüße.
  9. @ overdev Hi, ja das stimmt, doch oft gibt es auch feste Tasten, wie zB C für Characterstats, bei einer WASD Nutzung ist das dann ja schnell zugreifbar. Aber wenn alle Keys frei belegbar sind, macht das dann ja nichts.
  10. Ja danke dir, dann bauch ich doch gleich mal beides ein.
  11. Hallo, wie spielt ihr? Linke Hand auf WASD und rechte auf der Maus? Oder Maus in der linken, und rechte Hand auf den Pfeiltasten? LG
  12. Hallo ich habe hier ein kleines Click to Move script. if (Input.GetMouseButton(0)){ var hit :RaycastHit; var ray :Ray = (Camera.main.ScreenPointToRay(Input.mousePosition)); if (Physics.Raycast(ray, hit)&&(!EventSystem.current.IsPointerOverGameObject())) { if (hit.transform.name == "Terrain"){ movePoint=hit.point; moving = true; oldPointer=GameObject.FindWithTag("Pointer"); if(oldPointer){ Destroy(oldPointer); } Instantiate(pointerPrefab,new Vector3(hit.point.x,hit.point.y+0.3,hit.point.z),transform.rotation); } Damit soll bei jedem Klick auf das Terrain an dieser Position (y.+0.3) ein PointerPrefab erzeugt werden. Wenn ich im Editor "Maximize on Play" aktiviert habe, klappt es bestens. Doch bei kleinem Fenster wird dieses PointerPrefab nur in der Mitte des Screens erzeugt. Wie kann man dagegen machen?
  13. @ fairygirl: Danke dir, ich werd mir das gleich mal anschauen und dann abwiegen. Edit: Lad mir grad Fuse, könnte sich um Tage handeln. Vom Spieltechnischen her macht das ja kaum Unterschied. Ob der Spieler zu einem Schmied läuft, und sich von ihm Steine in seine Items sockeln lässt, oder ob er das direkt im Inventar selber machen kann, ist doch kaum ein Unterschied. Genauso beim erlernen von Skills. Das kann ich per NPC machen, direkt im Skillmenü, oder durch finden von Gegenständen. Warum dann nicht auch beim Handeln und Quests? Würdet ihr menschliche NPCs vermissen?
  14. Gute Tag. Ich bastel an einem Singleplayer RPG (3d, EgoView). Nun bin ich nicht sonderlich begabt, was das Erstellen von 3D Modellen angeht. Feinde (Monster) sind noch machbar und gibt es auch oft als CC0. Doch wenn es an die NPCs im Sinne von Menschen geht, ist bei mir sämtlicher Hopfen und Malz verloren. Ein RPG ohne Händler? Ohne Questgeber? Unvorstellbar, langweilig. Nun kam mir aus diesem Grund folgende Idee: Es gibt Händler, es gibt Questgeber. Doch sie werden nicht in der Spielwelt als 3D Charaktere dargestellt, sonder nur virtuell in einem Handels/Questmenü. Technisch läuft das so ab: Spieler drückt eine Taste, Handelsmenü öffnet sich. Dort findet er verschiedene Händler, grafisch schön dargestellt, als 2D Portraits, kann zwischen diversen Händlern auswählen, sieht ihre Vorlieben, ihr Alter, seinen Ruf bei ihnen usw. Er kann dann in diesem Menü mit ihnen handeln, Smalltalk halten, Quests annehmen, sie auf Expeditionen schicken, mit ihnen Glücksspiele spielen, Grundstücke kaufen/verkaufen und auch Baugenehmigungen erwerben. Dieses Menü ist jederzeit aufrufbar, man kann wo auch immer man sich befindet, (falls man ein volles Inventar hat, oder einem bestimmte Zutaten zum Herstellen von Gegenständen fehlen,oder man hat ein schönes Grundstück gesichtet, und möchte dieses nun bebauen) handel treiben. Oder eben Glücksspiel, Smalltalk, Quests abschießen/annehmen. Worauf man eben Lust hat. Doch die Händler sind nicht immer da, hin und wieder "reisen" sie ab, sind dann nicht verfügbar. So dass man im Laufe der Zeit " Beziehungen" zu den Händlern aufbaut und sie kennen lernt. Wäre die Spielwelt sehr viel weniger lebendig durch diese Idee? Die Natur ist sehr lebendig, es gibt Tiere, Wetterwechsel, Tag+Nacht Rythmus, und viele kleine Details. Doch keine Menschen. Was haltet ihr davon? Oder soll ich lieber einfach das Erstellen von 3D Charakteren erlernen, und es anderen RPGs gleichtun? Liebe Grüße.
  15. function DisableCanvas(){ var can : Canvas[]; can= FindObjectsOfType(Canvas) as Canvas[]; for (var canv : Canvas in can) { canv.GetComponent(Canvas).enabled = false; } isDone=true; } Geht doch!
×
×
  • Create New...