Jump to content
This site uses cookies! Learn More

This site uses cookies!

armedunity.com uses cookies to improve user experience.

By continuing to use this site, you agree to allow us to store cookies on your computer.

geckoo

Moderators
  • Content Count

    2,816
  • Joined

  • Last visited

  • Days Won

    155

Everything posted by geckoo

  1. At this page below, you can find many interesting articles and video so as to increase our perception of games, developing some projects, using some tips which often can do the difference between a bad or good game. Pixeland is an initiative to bring together game developers, artists, hobbyists, and students from very young to very old. All this material seems to me really useful - an amazing resources. There is a huge section with video. Take a look at this address ++ Must see videos for indie developers : http://pixeland.io/resources/must-see-videos-for-indie-developers
  2. One thing is certain : you love your game and you are ready to fight against the whole world so as to defend it. I respect that. I don't want to participate, but my comments had been written just for one reason - your outcry when others said "it looks creepy". I admit that things turned ugly and it is a shame (and finally you received a warning for inappropriate language). I assume that the best step that you could do in order to close our mouth - and open our small-mindedness - is to show us a game with an interesting gameplay and some efficient mechanics. Arguing here that your project is amazing - the next million dollars game - is just useless. Show us progres. As I said often (and it is sincere), I wish you the best, developing your project ++ Question : have you a page (itch.io or others) to follow you?
  3. @Theantman Continue to show us some progresses developing your game. However don't be offended if some don't like the main aesthetic. Here we are free to share what we want. We expect only respect ++
  4. An expression used to describe somebody who is incredibly cheap and will rarely lend money - by wearing spandex pants they are being a tight ass. https://www.urbandictionary.com/define.php?term=Spandex Pants I have to admit that I didn't know this expression which is fun. Thank you. However I guess that you don't respect anybody here because you cannot tolerate any critiscisms about your project. I think that it is a mistake which I did often in the past, admiting now that I must wait feedback from others and work according them. Please show another attitude and accept words those who don't like what you have done. Respectfully I assume that you could increase quality of your game. I wish you the best, developing it ++
  5. geckoo

    Red Solstice

    Red Solstice is free for a few days on Steam. I don't know anything about this game only one thing - it's free ++ http://store.steampowered.com/app/265590/The_Red_Solstice/
  6. Sure my boy, sure. Keep cool and have fun ++
  7. geckoo

    Russian road rage

    Ok. Thank you for the answer. I thought that it could be real, but I guess that you know more about russians
  8. geckoo

    Russian road rage

    Так ты думаешь? Объясни пожалуйста ++
  9. If I understand you clearly, you want to create a system to bet - and I assume that in many countries this is just forbidden. Be careful ++
  10. Maybe the best dash cam which I have ever seen on the web ++
  11. I found another one - Grid ++
  12. Hello dear fellow and welcome. Your experience is really interesting - you have changed engine. Respectfully I can admit that Unity is not the more powerful engine, but not the least. However its high points are amazing - a large gathered community, assets for a few bucks and (as you said before) many informations about functions, features, etc - and it is available for free. According its special strengths, by far I think that Unity is the best engine for those who want to develop some projects as an indie developers. Some projects add to its credibility. I was really impressed playing with SuperHot or CupHead - games which has been creating using Unity. And cherry on the cake, personnaly I guess that the best is yet to come. Welcome to our forum ++
  13. To switch between animations walk/run neither you can use a simple boolean when you press a key nor you can check player velocity so as to change state. I prefer the second way ++
  14. Understand. But during the eighties it was possible to show this flag without any outcry? General Lee has not other flag ++
  15. This is a pseudo French language which I don't understand too - I assume that he said "I play with a friend"
  16. I don't exactly understand what is a real world compass. However recently we shared a litle code to create a horizontal compass which gives us a value. You could use it so as to create your own. If you want to use a needle, you have a value which you could convert to angle ++
  17. Hello. Respectfully forget these sentences which are just ridiculous - showing clearly that you have no clue about what you are trying to do. These companies have/had hundreds employees each one (maybe more). How could you compete with them? Create a game is always possible but keep in mind that we have to do some work within its means. Just an advice so as to help you to find someone. I wish you the best ++
  18. I did a test. I simply copy/paste your code and it works as expected. You have a problem with your array. I assume that you have some empty slots ++ Set this array "public" and take a look at them in the inspector - or as Jojo said below, use Debug.Log ++
  19. Really good render. Some of them are just amazing - especially this pink dodge charger which I love. You could paint it with the Confederate States Army flag no?
  20. https://kotaku.com/counter-strike-co-creator-arrested-for-sexually-exploit-1822648715
  21. Sorry. Respectfully, I would like to recommand you to use simply a NavMesh agent so as to set a path - in other words, enemies walk to player. Also, for animations you can use either Legacy system nor mecanim. I prefer second way. Check distance/raycast between enemies and player to set state (patrol, walk, run and attack, etc). Take a look at this script which I coded for my game Abaddon. I use a NavMesh agent and mecanim to follow and attack player when enemy is near. I haven't time to erase those parts which have been integrated for features (ragdoll, hit FX, sounds, spwan, health, damage, etc). Try to clean it - and modify it regarding what you are doing. I wish you the best ++ All what you nedd to know : https://unity3d.com/fr/learn/tutorials/topics/animation/animate-anything-mecanim https://unity3d.com/fr/learn/tutorials/topics/navigation/navmesh-agent https://docs.unity3d.com/ScriptReference/RaycastHit.html https://docs.unity3d.com/ScriptReference/Vector3.Distance.html using UnityEngine; using System.Collections; // manages monster behavior and its features public class Monster : MonoBehaviour { GameObject ply; // player GameObject gm; // game manager Color col; // to manages hit effect float speed; // velocity float threshold; // distance when monter attacks player float attackAng; // angle which has been randomized to attack player bool hurtMe = true; // monster can attact again bool navMeshToggle = true; // controls nav mesh public int hp = 20; // monster health public int point = 100; // add points to score public AudioClip boom; // monster dies public AudioClip taunt; // monster tries to attack player public GameObject deathFX; // death effect public GameObject dust; // dust prefab // manages animator and nav mesh agent private UnityEngine.AI.NavMeshAgent agent; protected Animator animator; float atk; bool _death = false; bool _go = false; private void Awake() { SetKinematic(true); // function to manage colliders ply = GameObject.FindWithTag("Player"); agent = gameObject.GetComponent<UnityEngine.AI.NavMeshAgent>(); agent.SetDestination(ply.transform.position); gm = GameObject.Find("GameManager"); col = this.transform.GetComponentInChildren<SkinnedMeshRenderer>().material.color; // randomizes monster features speed = Random.Range(3.5f, 3.8f); threshold = Random.Range(2.8f, 3.2f); attackAng = Random.Range(45.0f, 80.0f); agent.speed = speed; agent.stoppingDistance = threshold; animator = GetComponent<Animator>(); } IEnumerator Start() { // at start we wait the end of the spawn animation agent.Stop(); yield return new WaitForSeconds(1.2f); animator.SetFloat("move", 1.0f); // monster walks now agent.Resume(); // also monster chases player _go = true; } // this function checks all rigidbodies to set them isKinematic = true void SetKinematic(bool newValue) { Rigidbody[] bodies = GetComponentsInChildren<Rigidbody>(); foreach (Rigidbody rb in bodies) { rb.isKinematic = newValue; if (newValue == true) { rb.transform.tag = "Monster"; // applies tag on this collider rb.GetComponent<Collider>().isTrigger = true; } else // when monster dies, all its colliders are setting to isTrigger = false rb.GetComponent<Collider>().isTrigger = false; } } // manages death animation IEnumerator deathAnim(float time) { // disables the main collider this.transform.GetComponent<CapsuleCollider>().enabled = false; SetKinematic(false); animator.enabled = false; // disables animator // play a sound when monster dies if (boom != null) gm.GetComponent<GameManager>().playSound(taunt, this.transform, false, Random.Range(0.7f, 0.9f), Random.Range(0.7f, 0.9f), taunt.length + 0.2f); // create an effect when monster dies yield return new WaitForSeconds(time); var fx1 = Instantiate(deathFX, this.transform.position, Quaternion.identity); var fx2 = Instantiate(dust, this.transform.position, Quaternion.identity); // then displays dust // destroys all effects and monster body Destroy(fx1, 2.0f); Destroy(fx2, 4.0f); Destroy(gameObject); } void FixedUpdate() { // nothing until the monster chases the player if (_go == false) return; // this condition manages eventually a dysfunction - the monster has fallen (not possible but why not) if (this.transform.position.y < -10) Destroy(gameObject); // sets the player as the target agent.SetDestination(ply.transform.position); // defines distance between monster and its target Vector3 offset = ply.transform.position - this.transform.position; float dist = offset.magnitude; // if monster is alive and distance is less than threshold ... if (dist < threshold && hp > 0) { // ... monster stops navMeshToggle = false; if (hurtMe == false) return; // ... it screams if (taunt != null) gm.GetComponent<GameManager>().playSound(taunt, this.transform, false, Random.Range(0.4f, 0.75f), Random.Range(0.4f, 0.75f), taunt.length); // ... tries to attack plyer StartCoroutine(damageMe(Random.Range(18, 20))); } // else monster chases its target else if (hp > 0) navMeshToggle = true; OnOffNavMeshAgent(); } // manages animation when state has been modified void OnOffNavMeshAgent() { if (hp <= 0 && _death == false) { // monster is dead gm.GetComponent<GameManager>().addScore(point); agent.Stop(); _death = true; // disable previous attack movement animator.SetBool("attack1", false); animator.SetBool("attack2", false); animator.SetBool("attack3", false); // starts death animation StartCoroutine(deathAnim(2.0f)); } if (navMeshToggle == true && hp > 0) { agent.Resume(); atk = 0.0f; animator.SetBool("attack1", false); animator.SetBool("attack2", false); animator.SetBool("attack3", false); } else if (navMeshToggle == false && atk == 0 && hp > 0) { // manages an animation randomized agent.Stop(); atk = Random.Range(0.0f, 1.0f); // three attack are available if (atk >= 0.66f) animator.SetBool("attack1", true); else if (atk >= 0.33f) animator.SetBool("attack2", true); else animator.SetBool("attack3", true); } else return; } // this function checks if the monster has hit the player behind him bool isBehind(GameObject ply) { var sum = Mathf.DeltaAngle(ply.transform.rotation.eulerAngles.y, this.transform.rotation.eulerAngles.y); if (sum > -60.0f && sum < 60.0f) return true; else return false; } // checks a new player position in order to know if he can avoid the monster attack bool dodge(GameObject ply) { float heightOfPlayer = 0.8f; Vector3 startVec = this.transform.position; startVec.y += heightOfPlayer; Vector3 startVecFwd = this.transform.forward; startVecFwd.y += heightOfPlayer; Vector3 rayDirection = ply.transform.position - startVec; if ((Vector3.Angle(rayDirection, startVecFwd)) < attackAng && (Vector3.Distance(startVec, ply.transform.position) <= threshold)) return true; else return false; } // manages attack IEnumerator damageMe(int dmg) { hurtMe = false; yield return new WaitForSeconds(0.9f); // the monster hits the player behind him - damage * 2 if (isBehind(ply) == true) dmg *= 2; // applies damage or increases score if (navMeshToggle == false && dodge(ply) == true) gm.GetComponent<GameManager>().health(dmg); else // dodge! - get points gm.GetComponent<GameManager>().addScore(20); yield return new WaitForSeconds(0.6f); hurtMe = true; navMeshToggle = true; } // manages effect when the monster has been hit by a bullet IEnumerator hitFX() { this.transform.GetComponentInChildren<SkinnedMeshRenderer>().material.color = Color.red; yield return new WaitForSeconds(0.15f); this.transform.GetComponentInChildren<SkinnedMeshRenderer>().material.color = col; } // decreases monster health public void hit() { hp--; StartCoroutine(hitFX()); } }
  22. Your code seems to me wrong. Here you can find a camera control which could be help you developing your own fly system. Add control to rotate camera, but using localRotation ++ https://gist.github.com/McFunkypants/5a9dad582461cb8d9de3 https://docs.unity3d.com/ScriptReference/Transform-localRotation.html
  23. Hello gegagome. Maybe I am wrong, but there is no way to pre-process an audio file. However, you can use two times the same track. The first one is simply muted, but it starts playing on Start(). All spectrum data will be stored dynamically in real time - regarding beat. The second one starts playing a few seconds later using a simple WaitForSeconds(). I didn't test it, but I assume that it could work as expected. Tell us more if you can fix your project ++
×
×
  • Create New...