I'm very confused about an Object Oriented Programming Project
Basically, my assignment is to use two classes (Main and Post) to make a basic replica of Reddit in Unity. I'm supposed to take inputs (post title, date, poster's username, and post's details), and save those as a new post. Then, when viewing that post, I'm supposed to be able to Upvote and Downvote it. I'm not quite done yet (it doesn't yet print the new post), I'm stuck because I feel like I'm doing everything wrong. I could program this just fine if I didn't need to use multiple classes. But as it stands, I'm stuck. Should each class be in a different C# script? Or can I have them both in the same? Which class should my Upvote/Downvote methods be in? Am I overthinking this substantially? Thanks.
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using TMPro;
public class MainScript : MonoBehaviour
{
public string userTitle;
public string userPosterName;
public string userCreationDate;
public string userPost;
public TMP_InputField titleInputField;
public TMP_InputField nameInputField;
public TMP_InputField dateInputField;
public TMP_InputField postInputField;
public TextMeshProUGUI voteText;
public GameObject postCreationCanvas;
Post post;
public void CreatePost() //this method is run when the "Post" button is clicked
{
userTitle = titleInputField.text;
userPosterName = nameInputField.text;
userCreationDate = dateInputField.text;
userPost = postInputField.text;
post = new Post(userTitle, userPosterName, userCreationDate, userPost);
postCreationCanvas.SetActive(false);
}
public void Upvote() //this method is run by pressing the upvote button
{
post.AddVotes();
voteText.text = "Votes: " + post.votes.ToString();
}
public void Downvote() //this method is run by pressing the downvote button
{
post.LoseVotes();
voteText.text = "Votes: " + post.votes.ToString();
}
}
public class Post
{
public Post(string _title, string _posterName, string _creationDate, string _postDetails)
{
this.title = _title;
this.posterName = _posterName;
this.creationDate = _creationDate;
this.postDetails = _postDetails;
}
public string title { get; set; }
public string posterName { get; set; }
public string creationDate { get; set; }
public string postDetails { get; set; }
public int votes = 0;
public void AddVotes()
{
votes++;
}
public void LoseVotes()
{
votes--;
}
}
Your answer
Follow this Question
Related Questions
Trouble with creating objects 1 Answer
How can I change a function from another script? 1 Answer
I can not use classes 1 Answer
Custom class, Null Reference Exception 4 Answers
Help with object oriented 0 Answers