Unitykoodaus, ongelmia ongelmia..

Liittynyt
31.10.2016
Viestejä
1 381
Eli olen väsäämässä tällaistä, ihan simppeliä "click-to-move" juttua Unityllä, mutta nyt on kyllä ongelmia.. Prkl. Tässä ensinnä koodinpätkä alkuun, josko joku osaisi auttaa ongelmassa (ongelma/kysymys koodin alapuolella)

Koodi:
using UnityEngine;
using System.Collections;

public class WorldInceration : MonoBehaviour {
    NavMeshAgent playerAgent;

    void start()
    {
        playerAgent = GetComponent<NavMeshAgent>();
    }



    void Update()
        {
        if (Input.GetMouseButtonDown)(0) !UnityEngine.EventSystems.EventSystem.current.IsPointerOverGameObject
        GetInteraction ();
        }

    void GetInteraction()
    {

        Ray interactionRay = Camera.main.ScreenPointToRay (Input.mousePosition);
        RaycastHit InteractionInfo;
        if (Physics.Raycast (interactionRay, out InteractionInfo, Mathf.Infinity))
        {
            GameObject interactedObject = InteractionInfo.collider.gameObject;
            if (interactedObject.tag == "Interactable Object") {
                Debug.Log ("interactable interacted.");
            }
            else
            {
                playerAgent.destination = InteractionInfo.point;
            }   


        
        }
    
    }
}
Eli, nyt tuo herjaa sellaista kun; Error CS1525: Unexpected symbol '!', ja jos poistan !-merkin pois Unityenginen edestä, tulee seuraava ongelma:
error CS0201: Only assignment, call, increment, decrement, and new object expressions can be used as a statement. Missä mättää tai mikä miulla mennyt v*tuilleen?
 
Liittynyt
17.10.2016
Viestejä
14 665
Eli, nyt tuo herjaa sellaista kun; Error CS1525: Unexpected symbol '!', ja jos poistan !-merkin pois Unityenginen edestä, tulee seuraava ongelma:
error CS0201: Only assignment, call, increment, decrement, and new object expressions can be used as a statement. Missä mättää tai mikä miulla mennyt v*tuilleen?
Sulla on vahingossa kadonnut osa ton update()-metodin sisällöstä. Joko sieltä puuttuu joku AND (&&) tai sitten haluat sisäkkäisiä if-lauseita. Mutta se on nyt viturallaan, kuten tuossa yllä jo todettiin. Itsehän en Unitystä tiedä sinänsä yhtään mitään.
 
Liittynyt
19.10.2016
Viestejä
1 562
If-lauseen pitäisi tosiaan olla muotoa if (Input.GetMouseButtonDown(0)) eikä if (Input.GetMouseButtonDown)(0). Nykyinen versio ei yksinkertaisesti pysty toimimaan ennen tuon korjausta, vaikka muuttaisit mitä muuta.
 
Liittynyt
19.10.2016
Viestejä
5 100
Olet ilmeisesti yrittänyt kirjoittaa itse Unityn perus esimerkkiä mitään siitä ymmärtämättä tuolle isPointerOverGameObject ja se on mennyt päin peetä. Copy pasteta uudelleen tästä:

Unity - Scripting API: EventSystems.EventSystem.IsPointerOverGameObject

Koodi:
void Update ()
    {
        // Check if the left mouse button was clicked
        if(Input.GetMouseButtonDown(0))
        {
            // Check if the mouse was clicked over a UI element
            if(EventSystem.current.IsPointerOverGameObject())
            {
                Debug.Log("Clicked on the UI");
            }
        }  
    }
 

Kamsi

Team R&T
Liittynyt
17.10.2016
Viestejä
299
Suosittelisin Unityn rinnalla käyttämään jotain kunnon IDEä (esim Visual Studio), joka kertoisi helpoimmat virheet.
 
Liittynyt
09.12.2016
Viestejä
474
Hei, ei tosiaan oikeasti kannata yrittää koodata ilman jotain oikeaa työkalua.

Visual Studio on kai se "way to go" jos on lisenssi duunista / koulusta. Jos ei ole niin VS Code:ssa on ilmeisesti tyydyttävä tuki Unitylle.
 
Liittynyt
19.10.2016
Viestejä
1 562
Eiköhän myös ihan Unityn mukana tuleva MonoDevelop kerro tuollaiset virheet. Tosin muuten se vaikuttaakin erittäin köykäiseltä enkä ainakaan minä pysty suosittelemaan sitä kenellekään.

Visual Studio on kai se "way to go" jos on lisenssi duunista / koulusta.
Tai sitten voi käyttää ilmaista Visual Studio Communityä.
 
Liittynyt
19.10.2016
Viestejä
81
Muistelen, että joskus muutama vuosi sitten tosta puuttuu jotain relevanttia mutta jos se nykyään toimii nii se on hyvä ;)
Visual Studio Express versiosta puuttui muutama tärkeä työkalu, mutta tässä uudessa Communityssä on kaikki tärkeimmät herkut ihan ilmaiseksi. Codessa on taas omat ongelmansa, mm. joutuu käyttämään vanhentunutta versiota C# tuesta koska Unity ei tue uutta syntaksia.
 
Liittynyt
21.01.2017
Viestejä
107
Eiköhän myös ihan Unityn mukana tuleva MonoDevelop kerro tuollaiset virheet. Tosin muuten se vaikuttaakin erittäin köykäiseltä enkä ainakaan minä pysty suosittelemaan sitä kenellekään.


Tai sitten voi käyttää ilmaista Visual Studio Communityä.
...joka kaiken lisäksi tulee nykyään Unityn mukana Windowsille. MonoDevelop on paketissa enää vain OS X- ja Linux-versioille.
 
Toggle Sidebar

Statistiikka

Viestiketjut
239 669
Viestejä
4 188 322
Jäsenet
70 778
Uusin jäsen
Heiniks

Hinta.fi

Ylös Bottom