Welcome to the Game Creator support forum!
This a place to ask questions, discuss ideas and report bugs. Please, provide your Unity and Game Creator versions as well as clear reproduction steps when opening a topic and full console logs.
I'm trying to do the following and I'm finding I need so many actions and conditions:
- Clear dirt patch
- Get plant seed (picking one up from a set lying on the ground)
- Plant seed
- Water seed
- After some time, plant finishes growing
- Harvest crop
The reason it's so difficult is because I have multiple plants. What I'm doing right now is when I 'Get plant seed', I store a variable for what seed I have. Then when I plant, I check that variable. Depending on what seed I have, I perform a set of actions, which generally consists of 'Set Active a prefab on the dirt patch to represent first stage of crop growth' and 'Set a state to a local variable'. So if I have 8 different possible seeds I can plant, I'd need 8 different sets of actions. I'd also need 8 conditions saying 'If it's ____ seed', do '____ seed's Action'. Also, each time I interact with the dirt patch, I have to check what state it's in. Depending on the state (dry, watered, dead), I'd have to perform a different set of actions. This quickly gets very cumbersome.
Agree, but there are some things you can do to "share" code (Actions in this case) between different plans. Let's say you have a Fire Plant that takes 5 seconds to grow and gives you 3 Fire Seeds. Then, you also have a Water Plant that takes 10 seconds to grow and gives you 1 Water Seed.
You could have a bunch of Global Variables of type Game Object that reference the prefab objects of each plant. For example, global variable "fire-plant" would reference a Fire Plant prefab, and "water-plant" would reference a Water Plant prefab.
Now this is very useful because when you plant a plant, you simply instantiate a game object from the variable you want. You can have an "On Start" Trigger in each plant that will execute an Actions that waits a few seconds (5 for Fire Plant and 10 for Water Plant) and changes the 3D model onto one that looks like a fully blossomed plant.
You could also add a Local Variable "is-dead" to all plants as well as a "water-need" variable, that starts at different values depending on the seed. An "On Start" Trigger could start lowering the "water-need" at fixed timesteps, and if the value reaches 0, it changes the value of "is-dead" to true. Watering a plant would simply increase the "water-need" numeric variable.
The idea would be having each seed/plant as an individual prefab and everything work very systemic-wise. Moreover, you could also make use of the "Execute Actions" action, which allows you to execute an Actions component from a game object (that can come from a Local Variable).
If you have a particular thing you want to have explained, feel free to ask. This looks like a very interesting project
Any way to set the volume for an individual sound via the Play sound action? i may have a few different sounds in the scene, and would like them at different volumes. Using the Play Sound doesn't allow for a volume modifier. any suggestions?
or anyway to execute a AudioSource to the Play Sound via the audio manager?
Hi Alienmadness. The Play Sound, as you mention, doesn't allow to change the volume of that particular sound. This should be ideally done in an external program and import the sound effect with the correct volume. The reason being that we have a separate volume layer for different kind of audios:
- Sound Effects
- Voices (coming soon)
However, if you still want to play a sound and modify its volume from Unity, as you said, you can do that interacting with the AudioSource component. You just need to enable the "Play On Awake" option in that component. To play this AudioSource component, disable and enable it using the "Set Active" action.
Hope this helps! Happy game making!
Having a issue: After I change the unity project ( product name ) in player settings, there is a issue with character movement. The Character Movement issue only appears after the build. Works perfect in the editor, not after building. Also I am not getting any console error messages. I think this is a bug.
Yeah definitely. It was a nice addition. We're just temporally removing it to identify the problem. We don't normally do this, but since we haven't been able to reproduce this problem, we're stripping everything we believe might be the case and reimplement it later. But for now, this will allow us assess whether the problem is here or not.
By the way, I'm marking the issue as Fixed, because I've already stripped all the necessary code. Tomorrow there should be a new Game Creator update available with this fix. If you still experience problems, feel free to reopen the ticket here.
so I created a health stat variable on my characters and I want to work with this variable further by adding a 'hurt state' if the health falls below a certain value and then ultimately "kill" the character when the health is on 0.
So far I have been able to change this var by colliding the enemy with my bullets, but nothing changes when my values are reached.
In my case, I use a local variable enemy_health, that has a default value of 100.
I have set a condition that checks if the variable value is equal or less than 25, then the character should become "hurt".
Same goes for checking if the health is equal or less than 0, then the character should turn into a ragdoll.
None of these actions ever start when reaching my designated values. Am I missing something?
Seems like you are missing a Trigger. Actions are list of instructions that are sequentially executed. Conditions, allow to execute different Actions based on Conditions.
Both of these systems require a Trigger to be executed. A Condition alone don't listen for scene events. You'll probably want a Trigger set to "On Variable Change". This trigger will be executed every time a given Local Variable changes its value. You can then execute the Conditions you already made and change the State of the Player for the one called Hurt, or kill it if the variable value is below zero.
Hope this helps!
the timescale seems to effect the audio component of the UI.
for example when i set the timescale to 0 to pause the game. i can no longer hear the UI clicks. This may have been with the recent 1.0.2 update or the inventory module (just purchased and installed it).
I would see this as within core GameCreator - as the resultant Actions would then be vv useful in the Modules as well - particularly the Behaviour Module, Quest Module, etc. Basically Actions controlling the weather if the Weather Asset is also compatible (as most are) with WAPI.... ;)
Also when switching from a tween camera to a first person camera, the first person camera tracks to the right of where the marker is facing. I've also tried using a separate first person camera and I'm having the same issue with it.
Okay, this was a bit more complex than expected. I changed how the Teleport works so you will now have an option to rotate the Character towards where the Marker points at. This change also affected other Game Creator scripts, so I just can't post them here, since there are some dependencies. You'll have to wait for the next update.
On the other hand, there's still another issue. When teleporting a Character, if the Character has the Face Direction property set to Camera Direction, even if the character copies the direction of the Marker when teleporting, the camera will still keep its rotation, making the character immediately rotate where the camera looks at.
There's a solution for this too, however, which is creating another FPS Camera Motor and switching to this one AFTER the Teleport. When changing to a FPS motor, it's first positioned behind the Player, which is exactly what you want.
Hope this is clear. I'm closing this topic, since the fix is already done and will be available with version 1.0.3. Feel free to keep posting, however, if something wasn't clear. Cheers!
Ah yes. The only requirement is that the Character has a skeleton. Although not required, it is best if the Rig type is set to Humanoid. You can do that by selecting your 3D model asset in the Project Panel and, under the Inspector, select the Rig tab and select the Humanoid option.
No need to worry about bone names and you can have as many extra bones as you want.
If your 3D model doesn't have a Rig, there's a quick and easy way to attach a bone structure. Go to Mixamo and select the Upload Model option. Drag and drop your character and follow the simple steps. You'll get the same 3D model you had with a complete skeleton, ready to be used in Unity and Game Creator.
I'm trying to make a prefab of an enemy that takes damage. For some reason, the copies of the prefab don lose points in a stat, just the first copy. after it reaches 0 I get this error when attacking the copy but this one doesn't loose points in a stat.
KeyNotFoundException: The given key was not present in the dictionary.
System.Collections.Generic.Dictionary`2[TKey,TValue].get_Item (TKey key) (at <599589bf4ce248909b8a14cbe4a2034e>:0)
GameCreator.Stats.Stats.GetStat (System.String stat, GameCreator.Stats.Stats target) (at Assets/Plugins/GameCreator/Stats/Mono/Components/Stats.cs:244)
GameCreator.Stats.Formula.OnMatch_StatName (GameCreator.Stats.Formula+FormulaData data, System.String clause) (at Assets/Plugins/GameCreator/Stats/Mono/Classes/Formula.cs:97)
GameCreator.Stats.Formula.ParseFormula (System.Text.StringBuilder sbFormula, GameCreator.Stats.Formula+FormulaData data) (at Assets/Plugins/GameCreator/Stats/Mono/Classes/Formula.cs:274)
GameCreator.Stats.Formula.Calculate (System.Single value, GameCreator.Stats.Stats origin, GameCreator.Stats.Stats target) (at Assets/Plugins/GameCreator/Stats/Mono/Classes/Formula.cs:258)
GameCreator.Stats.Stats.GetStat (System.String stat, GameCreator.Stats.Stats target) (at Assets/Plugins/GameCreator/Stats/Mono/Components/Stats.cs:251)
GameCreator.Stats.Stats.GetStat (System.String stat) (at Assets/Plugins/GameCreator/Stats/Mono/Components/Stats.cs:285)
GameCreator.Stats.StatsEditor.PaintStatHeader (GameCreator.Stats.StatAsset statAsset, System.Int32 index) (at Assets/Plugins/GameCreator/Stats/Editor/Components/StatsEditor.cs:336)
GameCreator.Stats.StatsEditor.OnInspectorGUI () (at Assets/Plugins/GameCreator/Stats/Editor/Components/StatsEditor.cs:162)
UnityEditor.UIElements.InspectorElement+<CreateIMGUIInspectorFromEditor>cAnonStorey1.<>m0 () (at C:/buildslave/unity/build/Editor/Mono/Inspector/InspectorElement.cs:501)
Looks like you created a Stat, used it in a Formula, but then deleted that Stat. For example, you might have initially set a Stat named "strength" but then removed it, although in a Formula you're using the stat:strength symbol.
Review your Formulas and make sure there's no typos in the Stats nor Attributes. Bear in mind these are case sensitive.
I'm trying to have the player grab a weapon from his back to his hand. It was all working well until I tried to set up variables for the object to be able to assign any equipped item. When I try now to use trigger player falls through the ground and if I try to unequip it destroys the player. See video link for Ref.
You're probably destroying the Player instead of the weapon. See how your Global Variable Equipped Item references the Player instead of the weapon. This can probably be the issue.
Make sure to use the Inventory's On Equip and On Unequip actions list. This should be able to replace all the Action you have in your scene.
Customer support service by UserEcho