Wayback Machinekoobas.hobune.stream
May JUN Jul
Previous capture 13 Next capture
2021 2022 2023
1 capture
13 Jun 22 - 13 Jun 22
sparklines
Close Help
  • Products
  • Solutions
  • Made with Unity
  • Learning
  • Support & Services
  • Community
  • Asset Store
  • Get Unity

UNITY ACCOUNT

You need a Unity Account to shop in the Online and Asset Stores, participate in the Unity Community and manage your license portfolio. Login Create account
  • Blog
  • Forums
  • Answers
  • Evangelists
  • User Groups
  • Beta Program
  • Advisory Panel

Navigation

  • Home
  • Products
  • Solutions
  • Made with Unity
  • Learning
  • Support & Services
  • Community
    • Blog
    • Forums
    • Answers
    • Evangelists
    • User Groups
    • Beta Program
    • Advisory Panel

Unity account

You need a Unity Account to shop in the Online and Asset Stores, participate in the Unity Community and manage your license portfolio. Login Create account

Language

  • Chinese
  • Spanish
  • Japanese
  • Korean
  • Portuguese
  • Ask a question
  • Spaces
    • Default
    • Help Room
    • META
    • Moderators
    • Topics
    • Questions
    • Users
    • Badges
  • Home /
avatar image
0
Question by josif · Aug 31, 2010 at 03:39 PM · gravitydistanceonmousedownlivesdead

need help with enemy script

hello all

can anyone help me i got this script and i want to add gravity how can this be done

var target : Transform; //the enemy's target var moveSpeed = 3; //move speed var rotationSpeed = 3; //speed of turning var gravity:float = 20.0; var Lives = 3; private var dead = false;

private var moveDirection:Vector3 = Vector3.zero;

var myTransform : Transform; //current transform data of this enemy

function OnMouseDown() { if(OnMouseDown) { Dead = true; Lives -= 1; } print(Lives); }

function Awake() { myTransform = transform; //cache transform data for easy access/preformance }

function Start() { target = GameObject.FindWithTag("Player").transform; //target the player

}

function Update () { //rotate to look at the player myTransform.rotation = Quaternion.Slerp(myTransform.rotation, Quaternion.LookRotation(target.position - myTransform.position), rotationSpeed*Time.deltaTime);

 //move towards the player
 myTransform.position += myTransform.forward * moveSpeed * Time.deltaTime;

 //Apply gravity
 moveDirection.y -= gravity * Time.deltaTime;

 switch(Lives)
 {
      case 0:
      Destroy(gameObject);
      break;
 }

}

also iv recently added lives to it the Lives work but how can i make it that you got to be a specific distance before the player can attack the enemy this script is somewhere in that script but i just got it out so its easier to see

var Lives = 3; private var dead = false;

function OnMouseDown() { if(OnMouseDown) { Dead = true; Lives -= 1; } print(Lives); }

Comment
Add comment
10 |3000 characters needed characters left characters exceeded
▼
  • Viewable by all users
  • Viewable by moderators
  • Viewable by moderators and the original poster
  • Advanced visibility
Viewable by all users

1 Reply

· Add your reply
  • Sort: 
avatar image
0

Answer by JusticeAShearing · Aug 01, 2015 at 05:18 PM

The problem is that, while you were changing 'moveDirection' in an attempt to lower the player's Y co-ordinate value, 'moveDirection' itself was not being used, and therefore had no effect.

The same method of creating gravity is found on the Unity Scripting API under 'CharacterController.Move'. However, this method uses a character controller to put 'moveDirection' to use.

Here is a link to the aforesaid page on the Scripting API: http://docs.unity3d.com/ScriptReference/CharacterController.Move.html

I have edited the script so that it uses a character controller (which I attached to the player) to create the effect of gravity:

 var target : Transform; //the enemy's target
 var moveSpeed = 3; //move speed
 var rotationSpeed = 3; //speed of turning
 var gravity = 20.0;
 var Lives = 3;
 private var dead = false;
 
 private var moveDirection : Vector3 = Vector3.zero;
 
 var myTransform : Transform; //current transform data of this enemy
 
 function OnMouseDown()
 { 
     if(OnMouseDown)
     { 
         Dead = true;
         Lives -= 1;
     }
     print(Lives);
 }
 
 function Awake()
 { 
     myTransform = transform; //cache transform data for easy access/preformance
 }
 
 function Start()
 {
     target = GameObject.FindWithTag("Player").transform; //target the player
 }
 
 function Update ()
 { 
     var controller : CharacterController = GetComponent.<CharacterController>();
 
     //rotate to look at the player 
     myTransform.rotation = Quaternion.Slerp(myTransform.rotation, Quaternion.LookRotation(target.position - myTransform.position), rotationSpeed * Time.deltaTime);
 
     //move towards the player
     myTransform.position += myTransform.forward * moveSpeed * Time.deltaTime;
 
     //Apply gravity
     moveDirection.y -= gravity * Time.deltaTime;
 
     switch(Lives)
     {
         case 0:
             Destroy(gameObject);
             break;
     }
 
     controller.Move(moveDirection * Time.deltaTime);
 }

Please inform me if you encounter problems using this edition of your script.

Comment
Add comment · Share
10 |3000 characters needed characters left characters exceeded
▼
  • Viewable by all users
  • Viewable by moderators
  • Viewable by moderators and the original poster
  • Advanced visibility
Viewable by all users

Your answer

Hint: You can notify a user about this post by typing @username

Up to 2 attachments (including images) can be used with a maximum of 524.3 kB each and 1.0 MB total.

Follow this Question

Answers Answers and Comments

1 Person is following this question.

avatar image

Related Questions

optimizing Gravitacional object-to-object calculations 1 Answer

Gravity within range 1 Answer

Lives/Death Script 1 Answer

Not losing lives 2 Answers

make projectiles always hit target 1 Answer


Enterprise
Social Q&A

Social
Subscribe on YouTube social-youtube Follow on LinkedIn social-linkedin Follow on Twitter social-twitter Follow on Facebook social-facebook Follow on Instagram social-instagram

Footer

  • Purchase
    • Products
    • Subscription
    • Asset Store
    • Unity Gear
    • Resellers
  • Education
    • Students
    • Educators
    • Certification
    • Learn
    • Center of Excellence
  • Download
    • Unity
    • Beta Program
  • Unity Labs
    • Labs
    • Publications
  • Resources
    • Learn platform
    • Community
    • Documentation
    • Unity QA
    • FAQ
    • Services Status
    • Connect
  • About Unity
    • About Us
    • Blog
    • Events
    • Careers
    • Contact
    • Press
    • Partners
    • Affiliates
    • Security
Copyright © 2020 Unity Technologies
  • Legal
  • Privacy Policy
  • Cookies
  • Do Not Sell My Personal Information
  • Cookies Settings
"Unity", Unity logos, and other Unity trademarks are trademarks or registered trademarks of Unity Technologies or its affiliates in the U.S. and elsewhere (more info here). Other names or brands are trademarks of their respective owners.
  • Anonymous
  • Sign in
  • Create
  • Ask a question
  • Spaces
  • Default
  • Help Room
  • META
  • Moderators
  • Explore
  • Topics
  • Questions
  • Users
  • Badges